The `native` architecture compiles for the host's GPUs, but our CI jobs
may may run on hosts with GPUs newer than supported by their version of
the CUDA toolkit. Add an undocumented environment variable to tell
CMake to clamp the native architecture to that supported by the toolkit.
Without this, we may try to compile for architectures not supported by
the CUDA Toolkit, which fails. Since commit d1b48bfabd (CUDA: Add
support for CUDA_ARCHITECTURES=native, 2022-03-04), our CUDA 9.2 CI job
fails when it runs on a CI host with a GPU architecture newer than that
CUDA 9.2 supports. Clamping the architecture level fixes that.
Do not document this clamp behavior publicly, at least for now.
Users can be responsible for building with a CUDA toolkit recent
enough to support their host's GPUs.
Issue: #22375
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
The actual compiler is too large to put in the base image.
Install its dependencies so we can download and run it in a job.
Note that Swift binaries are only available for `x86_64`.
Perforce does not provide binaries for `aarch64`, so leave it out for
that architecture.
Fedora now packages `breezy` instead of the original `bzr`. Note that
breezy does not have the xmloutput plugin needed for `bzr log --xml`.
This is also why commit 1972a75536 (Tests: Drop CTestUpdate.BZR test
check for xmloutput plugin, 2022-02-04) observed that there is no
`bzr xmlplugins` command.
We should have at least one CI job in merge request pipelines that
builds CMake with assertions enabled. We avoid using the `Debug`
configuration in order to keep CI artifacts small, so instead use
the `Release` configuration without `-DNDEBUG`.
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
Since commit e216b9bbd3 (cmake: Allow CMAKE_BUILD_TYPE to be set by
environment variable, 2021-06-29), the `CMAKE_BUILD_TYPE` environment
variable is interpreted by CMake, and can affect the test suite.
Rename our CI config variable to avoid conflict.
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).
The OpenMPI package in Fedora 34 requires a CPU with AVX instructions.
Some of our CI machines do not have them, and so fail the FindMPI.Test
test with `SIGILL`. Switch to MPICH. Since we test with OpenMPI on the
Debian jobs, this covers more MPI vendors anyway.
The Sphinx build is mostly serial and takes a long time. All our CI
pipelines (packaging, integration branches, merge requests) have a
dedicated job for the Sphinx build.
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.
* 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`