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.
This commit is contained in:
Brad King
2022-04-04 12:08:40 -04:00
parent 3a9a9a3ace
commit cb44e0d47c
4 changed files with 17 additions and 36 deletions

View File

@@ -59,7 +59,7 @@ p:doc-package:
- .cmake_doc_artifacts
- .run_only_for_package
.u:source-package:
u:source-package:
extends:
- .rsync_upload_package
- .run_only_for_package
@@ -67,8 +67,6 @@ p:doc-package:
- p:source-package
needs:
- p:source-package
variables:
RSYNC_DESTINATION: dev
# Documentation builds
@@ -529,7 +527,7 @@ b:linux-x86_64-package:
needs:
- p:doc-package
.u:linux-x86_64-package:
u:linux-x86_64-package:
extends:
- .rsync_upload_package
- .run_only_for_package
@@ -537,8 +535,6 @@ b:linux-x86_64-package:
- b:linux-x86_64-package
needs:
- b:linux-x86_64-package
variables:
RSYNC_DESTINATION: dev
b:linux-aarch64-package:
extends:
@@ -553,7 +549,7 @@ b:linux-aarch64-package:
needs:
- p:doc-package
.u:linux-aarch64-package:
u:linux-aarch64-package:
extends:
- .rsync_upload_package
- .run_only_for_package
@@ -561,8 +557,6 @@ b:linux-aarch64-package:
- b:linux-aarch64-package
needs:
- b:linux-aarch64-package
variables:
RSYNC_DESTINATION: dev
## Sanitizer builds
@@ -694,7 +688,7 @@ b:macos-package:
needs:
- p:doc-package
.u:macos-package:
u:macos-package:
extends:
- .rsync_upload_package
- .run_only_for_package
@@ -702,8 +696,6 @@ b:macos-package:
- b:macos-package
needs:
- b:macos-package
variables:
RSYNC_DESTINATION: dev
b:macos10.10-package:
extends:
@@ -717,7 +709,7 @@ b:macos10.10-package:
needs:
- p:doc-package
.u:macos10.10-package:
u:macos10.10-package:
extends:
- .rsync_upload_package
- .run_only_for_package
@@ -725,8 +717,6 @@ b:macos10.10-package:
- b:macos10.10-package
needs:
- b:macos10.10-package
variables:
RSYNC_DESTINATION: dev
# Windows builds

View File

@@ -2,7 +2,7 @@
.run_manually:
rules:
- if: '$CMAKE_CI_PACKAGE == "true"'
- if: '$CMAKE_CI_PACKAGE != null'
when: never
- if: '$CMAKE_CI_NIGHTLY == "true"'
when: on_success
@@ -23,7 +23,7 @@
.run_automatically:
rules:
- if: '$CMAKE_CI_PACKAGE == "true"'
- if: '$CMAKE_CI_PACKAGE != null'
when: never
- if: '$CMAKE_CI_NIGHTLY == "true"'
when: on_success
@@ -44,7 +44,7 @@
.run_dependent:
rules:
- if: '$CMAKE_CI_PACKAGE == "true"'
- if: '$CMAKE_CI_PACKAGE != null'
when: never
- if: '($CMAKE_CI_NIGHTLY == "true" && $CMAKE_CI_NIGHTLY_IGNORE_DEPS == "true")'
when: always
@@ -62,7 +62,11 @@
.run_only_for_package:
rules:
- if: '$CMAKE_CI_PACKAGE == "true"'
- if: '$CMAKE_CI_PACKAGE != null && $CMAKE_CI_JOB_UPLOAD_PACKAGE == null'
when: on_success
- if: '$CMAKE_CI_PACKAGE == "dev" && $CMAKE_CI_JOB_UPLOAD_PACKAGE == "true"'
variables:
RSYNC_DESTINATION: "dev"
when: on_success
- when: never

View File

@@ -18,6 +18,9 @@
- ssh-keygen -y -f $RSYNC_BINARY_KEY > $RSYNC_BINARY_KEY.pub
- rsync -tv --recursive -e "ssh -i $RSYNC_BINARY_KEY -o StrictHostKeyChecking=no -o LogLevel=ERROR" build/ kitware@cmake.org:$RSYNC_DESTINATION/
variables:
CMAKE_CI_JOB_UPLOAD_PACKAGE: "true"
.rsync_upload_help:
stage: upload
image: "fedora:34"

View File

@@ -245,20 +245,6 @@ Commit with a message such as::
Release versions do not have the development topic section of
the CMake Release Notes index page.
Update ``.gitlab-ci.yml`` to drop the upload jobs from the
packaging pipeline by renaming them to start in ``.``:
.. code-block:: shell
sed -i 's/^u:/.u:/' .gitlab-ci.yml
Commit with a message such as::
gitlab-ci: Drop package pipeline upload jobs for release branch
The package pipeline for release versions should not upload packages
automatically to our archive of nightly development versions.
Update ``Source/CMakeVersion.cmake`` to set the version to
``$major.$minor.0-rc0``:
@@ -290,15 +276,13 @@ Merge the ``release-$ver`` branch to ``master``:
git merge --no-ff release-$ver
Begin post-release development by restoring the development branch release
note infrastructure, the nightly package pipeline upload jobs, and
the version date from ``origin/master``:
note infrastructure, and the version date from ``origin/master``:
.. code-block:: shell
git checkout origin/master -- \
Source/CMakeVersion.cmake Help/release/dev/0-sample-topic.rst
sed -i $'/^Releases/ i\\\n.. include:: dev.txt\\\n' Help/release/index.rst
sed -i 's/^\.u:/u:/' .gitlab-ci.yml
Update ``Source/CMakeVersion.cmake`` to set the version to
``$major.$minor.$date``: