In commit 4c7c66dcf5 (gitlab-ci: Add jobs to make Windows x86_64 and
i386 packages, 2022-05-19, v3.24.0-rc1~112^2) we used a separate Windows
packaging job in nightly packaging pipelines. It did not run in release
pipelines, where we need to run the final packaging step manually with
signing. Simplify nightly packaging pipelines by running `cpack` at the
end of the build job as we do for other platforms.
For release packaging pipelines, create an archive of the files needed
to build a package, and present this as the built "package" on Windows.
Some package managers provide a minimal set of static libraries,
which historically has caused problems for FindCUDAToolkit.
Resolve this issue by creating a CUDA image with only the minimal
set of static libraries.
All our CI hosts now have Linux kernel version 3.17 or higher,
so we no longer need a dedicated tag.
This backports commit c212c7dc8b (gitlab-ci: drop unnecessary linux
kernel version tag, 2022-11-30) to the 3.25 release branch.
We already have `t:debian10-{makefiles,ninja}-clang` jobs covering old
versions of Clang with Makefile and Ninja generators. Complement them
with new `t:fedora37-{makefiles,ninja}-clang` jobs covering recent
versions of Clang.
Fedora 37 now packages LLVMFlang, so enable Fortran tests with that
compiler too.
Issue: #22387
Problems with `cmake-gui` when compiled with the MSVC 14.33 toolset,
that did not occur with the MSVC 14.32 toolset, no longer occur with the
MSVC 14.34 toolset. Revert commit cb8b27a901 (gitlab-ci: Use separate
MSVC toolset specification for packaging jobs, 2022-08-18, v3.24.2~24^2~1)
and update the remaining toolset version references.
Fixes: #23859
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.
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.