Commit Graph

863 Commits

Author SHA1 Message Date
Brad King 25ffa98d99 ci: update macOS jobs to use Xcode 16.4 2025-06-13 14:28:29 -04:00
Brad King 81c7ed367c Merge topic 'ci-msvc-14.44' into release-4.0
e37a40442a ci: Update Windows builds to MSVC 14.44 toolset
c955d5c31f ci: Tie Intel 2024.1 jobs on Windows to MSVC 14.43 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10802
2025-05-21 08:24:03 -04:00
Brad King e37a40442a ci: Update Windows builds to MSVC 14.44 toolset 2025-05-20 10:24:48 -04:00
Brad King c955d5c31f ci: Tie Intel 2024.1 jobs on Windows to MSVC 14.43 toolset
Intel 2024.1 tools do not work with the MSVC 14.44 standard library.
2025-05-20 10:23:30 -04:00
Brad King dc59932f7f Merge topic 'ci-no-kwsys-console-buf' into release-4.0
16ceddc77e ci: Disable KWSys ConsoleBuf test that breaks on Windows Terminal 1.22+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10784
2025-05-14 16:36:08 -04:00
Brad King 16ceddc77e ci: Disable KWSys ConsoleBuf test that breaks on Windows Terminal 1.22+
We've removed use of KWSys ConsoleBuf in post-4.0 commit 3e88020aed
(StdIo: Replace uses of KWSys ConsoleBuf with StdIo::Console,
2025-05-08).  There is no need to run its test anymore.

Windows-Terminal-Issue: https://github.com/microsoft/terminal/issues/18748
2025-05-14 15:36:11 -04:00
Brad King 72e7636540 ci: add tags to tie CUDA jobs to runners with hardware supporting them
CUDA 12.8 deprecated support for compute architectures below 75.
Presumably support will be removed from a future version of the
CUDA Toolkit.  Jobs using such a future version of CUDA will not
be able to compile support for CUDA architectures below 75, so
they will not be able to run on older hardware.  In preparation,
our CI runners now have `cuda-arch-#` tags for the architectures
they support.  Jobs may then be tagged with the minimum architecture
on which they can run.

Tag each job with the highest of the following requirements:

* Most of CMake's tests use the CUDA compiler's default architecture,
  which is based on the version the CUDA toolkit.

* For Clang we currently select architecture 52 if supported by the
  CUDA toolkit, even if that toolkit's NVCC defaults to an older arch.

* The `CudaOnly.Architecture` test uses a specific architecture
  configured by each CI job.
2025-04-21 18:25:49 -04:00
Brad King 1395c1e19a ci: Tell CudaOnly.Architecture test what specific architecture to use
CUDA 12.8 deprecates architectures below 75.  Presumably a future
version will remove it.  Prepare infrastructure to avoid relying on
hard-coded arch 52 in this test.
2025-04-21 18:24:41 -04:00
Brad King 4f2178c4a8 ci: add tags to tie CUDA jobs to runners with hardware supporting them
CUDA 12.8 deprecated support for compute architectures below 75.
Presumably support will be removed from a future version of the
CUDA Toolkit.  Jobs using such a future version of CUDA will not
be able to compile support for CUDA architectures below 75, so
they will not be able to run on older hardware.  In preparation,
our CI runners now have `cuda-arch-#` tags for the architectures
they support.  Jobs may then be tagged with the minimum architecture
on which they can run.

Tag each job with the highest of the following requirements:

* Most of CMake's tests use the CUDA compiler's default architecture,
  which is based on the version the CUDA toolkit.

* For Clang we currently select architecture 52 if supported by the
  CUDA toolkit, even if that toolkit's NVCC defaults to an older arch.

* The `CudaOnly.Architecture` test uses a specific architecture
  configured by each CI job.
2025-04-21 18:17:55 -04:00
Brad King 63a5460faf ci: Tell CudaOnly.Architecture test what specific architecture to use
CUDA 12.8 deprecates architectures below 75.  Presumably a future
version will remove it.  Prepare infrastructure to avoid relying on
hard-coded arch 52 in this test.
2025-04-21 18:07:15 -04:00
Brad King 3c08fa2b0d Merge topic 'FindXCTest-xcode-16' into release-4.0
2e59cee922 FindXCTest: Fix test module generation for Xcode 16
c653c1aa47 FindXCTest: Pass -bundle_loader linker flag for test module more reliably

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10573
2025-04-10 08:27:38 -04:00
Brad King 2e59cee922 FindXCTest: Fix test module generation for Xcode 16
In Xcode 7.3 and above, the `TEST_HOST` setting causes Xcode to
implicitly place the test module inside the executable bundle regardless
of the module's own location settings.  Since commit a364d2513a (Xcode:
Fixup XCTest bundle location for Xcode 7.3, 2016-03-25, v3.5.2~6^2) we
explicitly tell CMake to put the test module in the same location so
that generator expressions used by `xctest_add_test` agree with where
Xcode actually puts it.  In Xcode 16 and above, our explicit location
settings for the test module conflict with Xcode's `TEST_HOST` rules,
causing errors about multiple commands producing the same path.

Fix this by dropping CMake's explicit location for the test module
unless needed to match a project-specified location for the testee.
Instead, teach `xctest_add_test` to express the xctest module location
selected by `TEST_HOST` by using generator expressions referencing the
testee bundle.

Fixes: #26301
Fixes: #26514
2025-04-09 17:06:13 -04:00
Brad King 3b4adc2043 ci: update macOS jobs to use Xcode 16.3 2025-04-01 13:10:32 -04:00
Brad King a44a2d2579 ci: Explicitly enable or disable RunCMake.AppleSilicon test in macos jobs
Enable it on `macos-arm64` jobs and disable it on `macos-x86_64` jobs.
Since the default detection pierces Rosetta, it cannot be used in CI
where we might build and test on different hosts.
2025-03-10 17:02:33 -04:00
Brad King cbc54536b7 ci: Forward our dedicated license file to CPack packaging steps
This was missed in commit a9190bd38d (CMake: Prepare dedicated license
file for our own CPack configuration, 2025-03-02).
2025-03-05 09:01:37 -05:00
Brad King 2d42a5444f LICENSE: Rename Copyright.txt to LICENSE.rst
The name `LICENSE` is now more conventional.
Format as reStructuredText to improve rendering.
2025-03-03 09:55:56 -05:00
Brad King 5dd973f900 ci: Convert sunos packaging jobs to build sunos-{x86_64,sparc64} binaries 2025-02-27 16:35:09 -05:00
Brad King 28f1da4b25 ci: Add jobs to build sunos-{i386,sparc} binaries 2025-02-15 07:28:07 -05:00
Brad King dc88b35233 Merge topic 'ci-use-typos-for-commit-message-check' into release-4.0
4558c8f9ff ci: Use `typos` to check commit messages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10314
2025-02-15 07:22:45 -05:00
Brad King bc94c018c4 ci: Update HIP image to ROCm 6.3 on Ubuntu 24.04
The problem described in commit ec682ff22a (ci: Update to ROCm 6 HIP on
Fedora 41, 2024-12-02, v3.31.2~3^2) occurs here too.  Move the CI work
directory to a path without spaces.

Issue: #25932
2025-02-14 16:17:45 -05:00
Alex Turbov 4558c8f9ff ci: Use typos to check commit messages
Commit messages in the CMake repo may have Git hashes that can trigger
false positives in the `typos` checker.

Revert commit ddebf4653d (ci: Do not check commit messages with 'typos'
due to false positives, 2025-02-07).  Instead, copy the top-level config
file to a temporary location, add a configuration option to mark
10-hex-digit identifiers as always valid, and pass it to `typos` at the
commit checking phase.
2025-02-14 10:10:12 -05:00
Brad King 10da186af0 Merge topic 'ci-msvc-14.43' into release-4.0
8353a88661 ci: Update Windows builds to MSVC 14.43 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10336
2025-02-13 09:28:30 -05:00
Brad King 8353a88661 ci: Update Windows builds to MSVC 14.43 toolset 2025-02-12 11:05:51 -05:00
Brad King ddebf4653d ci: Do not check commit messages with 'typos' due to false positives
Since commit c3777c1536 (ci: Extend spellcheck job with 'typos' tool,
2025-01-04) we check spelling with `typos` in addition to the
pre-existing check with `codespell`.  Unlike `codespell`, `typos` can
find typos in combined identifiers, e.g., `PascalCase` or `snake_case`.
That works well for code, but in commit messages it can trigger on
"words" in the middle of commit hashes.
2025-02-07 10:04:18 -05:00
Brad King f398a517be ci: Update to rebuilt Fedora base images 2025-02-03 12:03:07 -05:00
Alex Turbov 72cce810ce ci(fedora41-hip): update the image in sync w/ fedora41
- Use the correct path for the DNF cache.
- There is not much sense in having a DNF cache image separately when
  the only `RUN` command is to install required packages.
2025-02-03 11:05:58 -05:00
Alex Turbov fa08bd803d ci(fedora41): refactor tests removal from Python packages 2025-02-03 11:05:57 -05:00
Alex Turbov 0e5159656a ci(fedora41): split install prerequisites and build for Rust packages 2025-02-03 11:05:55 -05:00
Alex Turbov 88c5cf809a ci(fedora41): split install prerequisites and build RBEnv into separate phases
It improves parallelization and speeds up the build by reusing cached layers.
2025-02-03 11:05:54 -05:00
Alex Turbov 86e96322eb ci(fedora41): tune RVM build to speedup and minimize the final image
- Do not waste time looking for pre-built images for Fedora.
  Tell to `rvm` to always build from sources.

- No need to update startup files (in the intermediate image).

- Exclude useless (documentation) files from the final archive.
2025-02-03 11:05:52 -05:00
Alex Turbov 264c902403 ci(fedora41): split install prerequisites and build RVM into separate phases
It improves parallelization and speeds up the build by reusing cached layers.
2025-02-03 11:05:51 -05:00
Alex Turbov 59383f6509 ci(fedora41): use cache for IWYU build 2025-02-03 11:05:49 -05:00
Alex Turbov dc9b7a15c0 ci(fedora41): split install prerequisites and build IWYU into separate phases
It improves parallelization and speeds up the build by reusing cached layers.
2025-02-03 11:05:48 -05:00
Alex Turbov 4b0ac15b49 ci(fedora41): use CMake to build and install IWYU
… instead of calling underlaid buildsystem tool. Also, add parallelization.
2025-02-03 11:05:46 -05:00
Alex Turbov 1edede9276 ci(fedora41): move Perforce download to a separate image
It improves parallelization and speeds up the build.
Since downloading is a quick task, put the results to the final image
at the beginning to avoid waiting for other (longer) tasks.
2025-02-03 11:05:45 -05:00
Alex Turbov 8946e0a3ba ci(fedora41): drop unused cache mount 2025-02-03 11:05:44 -05:00
Alex Turbov d2c34c95d9 ci(fedora41): restore the path to dnf cache
So, images would really use it again!
This reduce build time up to 25%!

This was accidentally broken by commit 46d89b8524 (ci: update Linux
image to Fedora 41, 2024-10-23, v3.31.0-rc3~7^2~2) by misdiagnosing an
error.
2025-02-03 11:05:42 -05:00
Alex Turbov 5eb8f47b67 ci(fedora41): use dnf.conf for options and simplify dnf install CLI 2025-02-03 11:05:40 -05:00
Alex Turbov b5a36e1efc ci(fedora41): sort dependency lists 2025-02-03 11:05:38 -05:00
Alex Turbov 31f0e8dd92 ci(fedora41): remove duplicate dependency package 2025-02-03 11:05:24 -05:00
Brad King 7f1250ca68 ci: Drop redundant job testing cuda12.2 with nvcc -ccbin=clang++-18
It has been superseded by an equivalent job with cuda12.6,
which does not need `--allow-unsupported-compiler`.
2025-01-30 12:00:33 -05:00
Brad King 1ffa199c55 ci: add jobs testing cuda12.6 with nvcc and clang 18 2025-01-30 09:34:41 -05:00
Brad King 07ddceea84 ci: add cuda12.6 base image 2025-01-30 09:31:09 -05:00
Brad King 377707d271 Merge topic 'rbenv_support'
ef2c3ca828 FindRuby: Add rbenv support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10100
2025-01-29 11:31:09 -05:00
Brad King 8bbb8fd8b6 Merge topic 'ci-cmake-update'
64e4f036d5 ci: Update CMake version to 3.31.5

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10252
2025-01-29 11:27:41 -05:00
Brad King 64e4f036d5 ci: Update CMake version to 3.31.5 2025-01-28 10:35:14 -05:00
cfis ef2c3ca828 FindRuby: Add rbenv support 2025-01-27 20:36:06 -05:00
Alex Turbov d2752135cb codespell: Fix typos found by version 2.4 2025-01-27 10:55:58 -05:00
Brad King 482b7c358b ci: Add rbenv to Debian and Fedora base images 2025-01-23 14:40:40 -05:00
Brad King 63924c4afa Merge topic 'ci-typos'
c3777c1536 ci: Extend spellcheck job with 'typos' tool
d11552c2d9 codespell: Exclude paths by patterns following pre-commit check conventions
11d0a631d4 codespell: Split multi-valued configuration across multiple lines
54dfadaf5a ci: Rename "codespell" job to more general name "spellcheck"
17fc94e5e3 ci: Add typos 1.29.4 to Fedora base image
ddf8220572 ci: Use Fedora 41 default flang package now that it is new enough
1e2d19ea4f gitignore: Tell tools honoring .gitignore to ignore .git too
0d0a94bcfb Tests: Fix Fortran syntax for initialized variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10211
2025-01-23 09:34:02 -05:00