Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated CI, added CD #239

Merged
merged 7 commits into from
May 14, 2024
Merged

Updated CI, added CD #239

merged 7 commits into from
May 14, 2024

Conversation

mfep
Copy link
Contributor

@mfep mfep commented Sep 19, 2023

  • Added .gitignore file,
  • Added .clang-format (based on OpenCL-SDK's corresponding file) and format enforcing script.
  • Minor changes to source files to avoid warnings on all compilers tested in CI.
    • -Werror//WX is enabled in CI
  • Refactored the CMakeLists.txt to be able to produce a binary Debian package using cpack.
    • CMake minimum version is bumped to 3.16.
  • Updated the CI (pre-release) script.
    • Removed the previous separate workflows for Windows, MacOS and Linux. All CI scripts reside in the presubmit workflow now.
    • Added a job that checks the changed code for formatting conformance via git-clang-format.
    • Updated Linux CI to use a new container image
      • Most jobs in the matrix are based on Ubuntu 22.04
      • Compilers gcc-11, gcc-13, clang-14, clang-16 and gcc-9 on Ubuntu 20.04
      • Binary targets: x86-64 and x86 on Ubuntu 20.04
      • C standards: 99, 11, 17
      • CMake versions: 3.26 and 3.16 on Ubuntu 20.04
      • CMake generators: Ninja Multi-Config, Unix Makefiles
      • Added the generation of the Debian package, testing the package, and testing the install tree to the workflow
    • Updated Windows CI, which runs on Windows Server 2022
      • MSVC toolsets: v141, v142, v143, clang-cl (this latter with msbuild only)
      • Binary targets: x86-64, x86
      • C standards: 99, 11, 17
      • CMake: system installed, currently 3.27
      • CMake generators: Ninja Multi-Config, Visual Studio 17 2022
      • Added the result checking of the external command invocations in the PowerShell snippets
    • Updated MacOS CI, which runs on MacOS 13
      • Compilers: Apple-Clang 14, gcc-11, gcc-13 (gcc with Ninja Multi-Config only)
      • Binary target: x86-64
      • C standards: 99, 11, 17
      • CMake: system installed, currently 3.27
      • CMake generators: Ninja Multi-Config, XCode
      • Added test checking the consumption of the install tree
    • Added Android CI, which is build only (virtualization is not available with the default GitHub runners)
      • Binary targets: x86-64, arm64
      • Android API levels: 19, 33
  • Added a release workflow which triggers on the push of a v* tag
    • Added DebSourcePkg.cmake which is intended to run in CMake script mode. This script generates the debian/control, debian/changelog and ``debian/rules` files which are required to build a Debian source package.
    • The release workflow generates the Debian source package and pushes it to a prescribed Launchpad PPA. The details of the release (e.g. maintainer, signing key) has to be set up as repository variables.
    • Detailed instruction regarding the release procedure is going to be added to the OpenCL SDK repository.

This PR is considered to be complete, albeit review remarks and/or changes to related PRs might warrant minor updates.

The commits are authored by me, however a significant part of the work has been done by @Beanavil.

@CLAassistant
Copy link

CLAassistant commented Sep 19, 2023

CLA assistant check
All committers have signed the CLA.

Kerilk
Kerilk previously approved these changes Dec 5, 2023
Copy link
Contributor

@Kerilk Kerilk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am by no mean a CMake expert, the rest is looking good to me.

Copy link
Contributor

@bashbaug bashbaug left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed in the April 9th teleconference. We just released specs v3.0.16 and we're planning a release for the headers shortly. We're going to hold off merging these changes until after the release, then we will plan to merge ASAP.

Copy link
Contributor

@bashbaug bashbaug left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merging as discussed in the May 14th teleconference (and previously).

@bashbaug bashbaug merged commit 1e958b2 into KhronosGroup:main May 14, 2024
86 checks passed
@EwanC
Copy link
Contributor

EwanC commented May 15, 2024

I'm seeing CI failures on my PR #251 which was opened after this merged, which look unrelated to the change i'm making

In particular on macos gcc-11 configs I get the error (even after a retry):

cmake -G "Ninja Multi-Config" -D BUILD_TESTING=ON -D CMAKE_C_STANDARD=17 -D CMAKE_C_EXTENSIONS=OFF -D CMAKE_C_STANDARD_REQUIRED=ON -D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install -S $GITHUB_WORKSPACE -B $GITHUB_WORKSPACE/build
  shell: /bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    CFLAGS: -Wall -Wextra -pedantic -Werror
    CC: /usr/local/bin/gcc-11
CMake Error at /opt/homebrew/Cellar/cmake/3.29.2/share/cmake/Modules/CMakeDetermineCCompiler.cmake:49 (message):
  Could not find compiler set in environment variable CC:

  /usr/local/bin/gcc-11.

Would somebody knowledgeable from this PR be able to help fix it.

@bashbaug
Copy link
Contributor

Tagging @mfep and perhaps @MathiasMagnus - see above.

@mfep mfep deleted the release-cd branch May 17, 2024 09:33
@mfep
Copy link
Contributor Author

mfep commented May 17, 2024

Yes, please see #252

@Beanavil Beanavil mentioned this pull request May 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants