Commit Graph

36 Commits

Author SHA1 Message Date
Brad King
1f46bc299b ci: Extend packaging pipeline to sign Windows binaries automatically
Split packaging on Windows into dedicated jobs that run with access to
an EV signing certificate.

Prior to commit 0929221ca3 (gitlab-ci: Simplify Windows packaging
pipeline, 2023-02-28, v3.26.0-rc5~3^2~3) we had separate packaging jobs,
but they did not run in release packaging pipelines.  Restore them, and
run them in both nightly and release packaging pipelines.
2025-03-19 11:22:30 -04:00
Brad King
0f82d07266 ci: add job to update CMake Nightly Date Stamp
Previously the nightly version update was performed by an
externally-managed scheduled task.  Move it to CI.
2024-12-17 14:48:08 -05:00
Brad King
a0f85760ac gitlab-ci: add rules to suppress jobs in a nightly pipeline schedule 2024-02-29 11:59:05 -05:00
Brad King
7c60a2625d gitlab-ci: Optionally upload release packages to custom URL 2023-02-28 13:39:52 -05:00
Brad King
fc8a981893 gitlab-ci: Generalize package and help upload URLs 2023-02-28 13:39:52 -05:00
Brad King
0929221ca3 gitlab-ci: Simplify Windows packaging pipeline
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.
2023-02-28 13:39:44 -05:00
Brad King
4c7c66dcf5 gitlab-ci: Add jobs to make Windows x86_64 and i386 packages
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.
2022-05-19 15:25:55 -04:00
Brad King
5c429c5b40 Merge topic 'ci-cmake.org-help'
b691906d27 gitlab-ci: Build qthelp-format release documentation for cmake.org
1ceec19c20 gitlab-ci: Add objects.inv to cmake.org html documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7146
2022-04-06 13:02:38 -04:00
Brad King
b691906d27 gitlab-ci: Build qthelp-format release documentation for cmake.org
Previously the qthelp-format release documentation on `cmake.org` was
built manually.
2022-04-06 09:59:14 -04:00
Brad King
2ce668b11d Merge branch 'backport-ci-cmake.org-help' into ci-cmake.org-help 2022-04-05 16:51:04 -04:00
Brad King
2808281730 gitlab-ci: update cmake.org documentation in release package pipeline 2022-04-05 16:09:55 -04:00
Brad King
ed00a29cce gitlab-ci: consolidate jobs for cmake.org/cmake/help/git-{master,stage} docs 2022-04-05 16:09:55 -04:00
Brad King
c7bc763d58 Merge topic 'ci-release-manual'
eb410615f2 gitlab-ci: start release package pipelines manually
3a90800a9c gitlab-ci: simplify package pipeline job conditions
9a1b301c85 gitlab-ci: add sanity check to upload jobs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7143
2022-04-05 15:39:14 -04:00
Brad King
eb410615f2 gitlab-ci: start release package pipelines manually
A release pipeline is always created by manual execution of a pipeline
schedule.  Require the initial pipeline jobs to be started manually too
so that we can later add separate components to play separately.
2022-04-05 15:00:17 -04:00
Brad King
3a90800a9c gitlab-ci: simplify package pipeline job conditions
Use the job stage to distinguish upload jobs instead of an
explicit variable.
2022-04-05 15:00:17 -04:00
Brad King
ffe699217c Merge topic 'ci-package-uploads'
b20a19fca1 Merge branch 'backport-3.22-ci-package-uploads' into ci-package-uploads
cb44e0d47c gitlab-ci: distinguish release and development pipeline schedules
3a9a9a3ace gitlab-ci: clarify name of package upload job template

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7142
2022-04-04 13:41:28 -04:00
Brad King
cb44e0d47c gitlab-ci: distinguish release and development pipeline schedules
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.
2022-04-04 13:23:37 -04:00
Brad King
e3519aced4 ci: configure rules to enable dependent jbos in continuous pipeline
Apply the rules from commit ff72dbfb14 (gitlab-ci: configure rules to
enable continuous builds of staged MRs, 2020-09-30, v3.19.0-rc1~70^2~1)
and commit 71665c8cb9 (gitlab-ci: Clarify conditions enabling jobs for
continuous build of stage, 2021-05-05, v3.21.0-rc1~218^2) to dependent
jobs too.
2022-03-02 15:05:19 -05:00
Brad King
ada9855b78 gitlab-ci: Run manual jobs automatically only on scheduled pipelines
Previously we ran manual jobs automatically in the `cmake/cmake`
project integration branches.  Change this to happen only when
the pipeline is created by a schedule.

Also, start automatic jobs in scheduled pipelines without delay.
2021-10-27 13:30:20 -04:00
Brad King
354ae6fe2e gitlab-ci: add jobs to build cmake.org/cmake/help/git-{master,stage} docs 2021-05-07 09:52:59 -04:00
Brad King
71665c8cb9 gitlab-ci: Clarify conditions enabling jobs for continuous build of stage 2021-05-05 15:25:35 -04:00
Brad King
19a59399e4 Merge topic 'ci-lint-delay'
661ff7f2d8 gitlab-ci: equally delay all jobs on integration branches

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6013
2021-04-16 13:24:05 -04:00
Brad King
661ff7f2d8 gitlab-ci: equally delay all jobs on integration branches
When running a pipeline on an integration branch in `cmake/cmake`, delay
the lint jobs just as much as all the others.  This avoids starting them
unnecessarily during a sequence of merges over a short time range.
2021-04-16 12:15:15 -04:00
Brad King
402518904f gitlab-ci: add rules to enable jobs only in a nightly pipeline schedule 2021-03-17 11:41:25 -04:00
Ben Boeckel
beb130c65d gitlab-ci: allow some jobs to ignore failing tests on nightly runs 2021-03-01 15:51:27 -05:00
Brad King
d997637fa3 gitlab-ci: add rules infrastructure to allow non-MR jobs 2021-01-27 11:59:30 -05:00
Brad King
dd47d0d7f4 gitlab-ci: add rules to enable jobs in a nightly pipeline schedule 2020-10-07 06:16:51 -04:00
Brad King
ff72dbfb14 gitlab-ci: configure rules to enable continuous builds of staged MRs
Configure rules to allow jobs for continuous builds to be enabled on a
project that configures a specific branch this purpose.
2020-09-30 15:00:56 -04:00
Brad King
a7afd8d3b0 gitlab-ci: use separate rules for dependent jobs 2020-09-30 14:29:20 -04:00
Brad King
6dca75fd86 gitlab-ci: minimize pipeline for packaging 2020-09-17 13:12:30 -04:00
Ben Boeckel
7d4ec05c6f gitlab-ci: add a job to make a doc "bundle"
This can be added to any other platform's package by reusing the
artifact.
2020-09-16 13:35:53 -04:00
Brad King
f6a80ffd54 gitlab-ci: Prefer MR rules for any pipeline associated with a MR
GitLab 13.3 started creating MR pipelines in the parent project of a MR
from a fork, at least when the MR submitter is a developer in the parent
project.  If the pipeline is associated with a MR, we should use the
corresponding rules regardless of which project hosts the pipeline.
2020-09-10 15:48:13 -04:00
Ben Boeckel
726766713b gitlab-ci: avoid failing dependent steps
This avoids making busted jobs if a prerequisite fails.
2020-07-27 10:02:34 -04:00
Ben Boeckel
a1fe6ad621 gitlab-ci: use extends
YAML anchors are not supported across include files.
2020-06-12 12:56:03 -04:00
Ben Boeckel
2b4523c5f2 gitlab-ci: make rules a bit more uniform 2020-06-12 12:28:29 -04:00
Ben Boeckel
d6fe877cf9 gitlab-ci: split into multiple files
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.
2020-06-12 12:28:29 -04:00