b87645b6a5 gitlab-ci: Update non-packaging Windows builds to MSVC 14.33 toolset
cb8b27a901 gitlab-ci: Use separate MSVC toolset specification for packaging jobs
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7597
07bc3b07ec gitlab-ci: test C++ modules using GCC
1b2270aa4e ci: add a Docker image to test out C++ modules with GCC
8c5a53096a Tests/RunCMake/CXXModules: add module-using examples
4151547e2f cmGlobalNinjaGenerator: use `cmModuleMapper` implementation
b43bdaff3c cmCxxModuleMapper: implement support for GCC's module map format
02d0f0e752 cmCxxModuleMapper: add source to handle module mapper contents
a046a45aad cmGlobalNinjaGenerator: add a TODO for header units
386465bf83 cmTarget: add support for C++ module fileset types
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7369
Follow up commit 7a21173b0e (gitlab-ci: Add job to build Windows arm64
binaries, 2022-06-13, v3.24.0-rc1~4^2~1). Base the package and upload
jobs on the approach from commit 4c7c66dcf5 (gitlab-ci: Add jobs to make
Windows x86_64 and i386 packages, 2022-05-19).
Issue: #21902
Base it on the approach from commit 4c7c66dcf5 (gitlab-ci: Add jobs to
make Windows x86_64 and i386 packages, 2022-05-19). Leave out the
packaging and upload steps for now because they are only for the nightly
binaries, and will need a new release of CPack to pass the `arm64`
architecture to WiX.
Issue: #21902
Name the `.zip` file that GitLab CI uses to hold the package artifacts.
Use a different name for each platform/architecture combination so that
we can download them all to a single local directory without conflicts.
Run CPack in a separate job for nightly binaries, and not at all for
release binaries. Unlike macOS disk images (.dmg), we cannot sign the
binaries inside Windows installers (.msi) after-the-fact. Instead,
produce enough artifacts from the build job to sign and package release
binaries manually.
Port build settings from `Utilities/Release/win/x86/Dockerfile` and its
helper scripts.
Redefine the `CMAKE_CI_PACKAGE` pipeline schedule variable to
indicate whether it is for a development version (`dev`) or a
release version (`v[0-9]...`). Use this to automatically turn
package upload jobs on or off without having to edit the jobs
in `.gitlab-ci.yml` for release branches.
1f601753d7 gitlab-ci: add jobs testing cuda11.6 with nvcc and clang 13
7716750062 ci: add cuda11.6 base image
77bdcc949d gitlab-ci: run CUDA and HIP test jobs in any non-MR pipeline
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7038
Previously we only ran these in a scheduled nightly pipeline.
We should run them in pipelines on integration branches too,
particularly for the `release` branch.
bba3d65bb6 ci: add fedora35-ninja build and test jobs in continuous pipeline
e3519aced4 ci: configure rules to enable dependent jbos in continuous pipeline
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7034
3fe20db126 gitlab-ci: add jobs testing Intel 2022.0.2 compilers on Linux
6675fdd5c9 gitlab-ci: add jobs testing Intel 2021.4.0 compilers on Linux
ce8d471d94 gitlab-ci: add jobs testing Intel 2021.3.0 compilers on Linux
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6962
In commit c1f4bd792b (ci: Add LLVM/Clang 13.0 nightly CI jobs on
Windows, 2022-02-02) we added three of the four combinations of
`clang-cl`/`clang++` with NMake/Ninja. Add the last combination.
This helps to maximize the amount of information visible in the GitLab
web interface.
Also document their meaning in the developer documentation and in the CI
configuration file directly.
See: https://gitlab.com/gitlab-org/gitlab/-/issues/8496
This helps to maximize the amount of information visible in the GitLab
web interface.
Also document their meaning in the developer documentation and in the CI
configuration file directly.
See: https://gitlab.com/gitlab-org/gitlab/-/issues/8496
The job runs dependently after the asan build job. Fix the rules for
the job added by commit 20bc209a0c (gitlab-ci: add clang asan job,
2021-06-07, v3.21.0-rc1~61^2).
cb5c03ed04 gitlab-ci: upload JUnit reports for builds
722270ff50 ci: update to 3.21.0-rc2 for CI usage
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !6072
886a97cbe7 gitlab-ci: add job to test with clang-7 and ninja on debian10
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6237
In commit 7e5e558d0f (gitlab-ci: add job to test with clang-7 on
debian10, 2021-06-04) we added coverage of clang-7 with the Unix
Makefiles generator. Do the same for Ninja.
Test with a Clang version old enough to have caught the regression fixed
by commit 9411766c35 (BinUtils: Avoid llvm-objdump versions older than
Clang 9, 2021-05-29).
397ced99d7 gitlab-ci: Add macos-arm64 jobs for Ninja and Xcode
0755c2ffbb gitlab-ci: rename macos build and test jobs to macos-x86_64
73150a3798 ci: add sccache 0.2.15 custom build for aarch64-apple-darwin
cab41b96ac ci: update to sccache 0.2.15 on linux builds
8dcbe5688a ci: Use Qt macOS 10.13+ package for macOS build and test jobs
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !5851
Use `linux_release` in names associated with building or testing
release-style binaries. Add a `.linux_package` helper to adjust
the release binary build behavior for package-specific jobs.
In order to support modern macOS features like Dark Mode, we need to use
Qt 5.15, which requires macOS 10.13. However, we still want to support
macOS 10.10 as well, for which we need to use Qt 5.9. Build separate
macOS packages for these use cases.
Fixes: #21606
Issue: #20825
* ci-fedora33-release:
gitlab-ci: use Fedora 33 to build sources
gitlab-ci: update Linux CI to use Fedora 33
ci: update to Fedora 33 for Linux builds
ci: install gmock in the Fedora 31 image
Tests/FindBoost/TestPython: support finding 3.8 and 3.9
clang-tidy: ignore new warnings from newer versions
clang-tidy: ignore `misc-no-recursion`
Also add comments for sections to make it easier to figure out what's
going on.
Also rename the `cmake_test_unix_package` to be Linux-specific since it
actually is.
2e7cefec03 gitlab-ci: add a cuda10.2 builder
1a2961b895 Tests: add CUDA labels to tests which are affected by CUDA
2caa7502d5 ci: support running just a set of tests with external builders
26b4cbcf93 gitlab-ci: move Makefiles Linux tests to use the package
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4877
On macOS and Windows, our jobs use a `GIT_CLONE_PATH` that does not
contain `$CI_CONCURRENCY_ID` so that the build and test jobs always use
the same path. Since we use shell runners for these platforms, all
concurrent jobs would use the same path and conflict. Therefore we can
only use runners with a concurrency level of 1 for jobs in the `build`
and `test` stages. However, jobs in the `test-ext` stage configure a
new build tree for the tests and therefore can use `$CI_CONCURRENCY_ID`
and support shell runners with higher concurrency levels.
Prepare to make that distinction in the future by pinning all jobs to
runners with a `nonconcurrent` tag.
The toolsets available on machines hosting shell runners will evolve
over time. Require the runners to have tags indicating that they have
specific toolsets available. When toolsets are eventually removed from
a runner, its tags can then be updated accordingly to prevent pipelines
created for old commits from ever running on them.
When the sccache executable is in the build directory, it can fail to be
removed if the daemon is still running when another job starts. It
continues to run when a job is canceled or fails and then is "in use"
and cannot be deleted.
This build uses Qt libraries in a Fedora container. This library is
tagged with a note which says it requires Linux 3.17. Some of or CI
runners do not have this kernel on the host which causes glibc to refuse
to load it. Add a tag to indicate that we need a newer kernel on the
runner.