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
+5 -15
View File
@@ -59,7 +59,7 @@ p:doc-package:
- .cmake_doc_artifacts - .cmake_doc_artifacts
- .run_only_for_package - .run_only_for_package
.u:source-package: u:source-package:
extends: extends:
- .rsync_upload_package - .rsync_upload_package
- .run_only_for_package - .run_only_for_package
@@ -67,8 +67,6 @@ p:doc-package:
- p:source-package - p:source-package
needs: needs:
- p:source-package - p:source-package
variables:
RSYNC_DESTINATION: dev
# Documentation builds # Documentation builds
@@ -529,7 +527,7 @@ b:linux-x86_64-package:
needs: needs:
- p:doc-package - p:doc-package
.u:linux-x86_64-package: u:linux-x86_64-package:
extends: extends:
- .rsync_upload_package - .rsync_upload_package
- .run_only_for_package - .run_only_for_package
@@ -537,8 +535,6 @@ b:linux-x86_64-package:
- b:linux-x86_64-package - b:linux-x86_64-package
needs: needs:
- b:linux-x86_64-package - b:linux-x86_64-package
variables:
RSYNC_DESTINATION: dev
b:linux-aarch64-package: b:linux-aarch64-package:
extends: extends:
@@ -553,7 +549,7 @@ b:linux-aarch64-package:
needs: needs:
- p:doc-package - p:doc-package
.u:linux-aarch64-package: u:linux-aarch64-package:
extends: extends:
- .rsync_upload_package - .rsync_upload_package
- .run_only_for_package - .run_only_for_package
@@ -561,8 +557,6 @@ b:linux-aarch64-package:
- b:linux-aarch64-package - b:linux-aarch64-package
needs: needs:
- b:linux-aarch64-package - b:linux-aarch64-package
variables:
RSYNC_DESTINATION: dev
## Sanitizer builds ## Sanitizer builds
@@ -694,7 +688,7 @@ b:macos-package:
needs: needs:
- p:doc-package - p:doc-package
.u:macos-package: u:macos-package:
extends: extends:
- .rsync_upload_package - .rsync_upload_package
- .run_only_for_package - .run_only_for_package
@@ -702,8 +696,6 @@ b:macos-package:
- b:macos-package - b:macos-package
needs: needs:
- b:macos-package - b:macos-package
variables:
RSYNC_DESTINATION: dev
b:macos10.10-package: b:macos10.10-package:
extends: extends:
@@ -717,7 +709,7 @@ b:macos10.10-package:
needs: needs:
- p:doc-package - p:doc-package
.u:macos10.10-package: u:macos10.10-package:
extends: extends:
- .rsync_upload_package - .rsync_upload_package
- .run_only_for_package - .run_only_for_package
@@ -725,8 +717,6 @@ b:macos10.10-package:
- b:macos10.10-package - b:macos10.10-package
needs: needs:
- b:macos10.10-package - b:macos10.10-package
variables:
RSYNC_DESTINATION: dev
# Windows builds # Windows builds
+8 -4
View File
@@ -2,7 +2,7 @@
.run_manually: .run_manually:
rules: rules:
- if: '$CMAKE_CI_PACKAGE == "true"' - if: '$CMAKE_CI_PACKAGE != null'
when: never when: never
- if: '$CMAKE_CI_NIGHTLY == "true"' - if: '$CMAKE_CI_NIGHTLY == "true"'
when: on_success when: on_success
@@ -23,7 +23,7 @@
.run_automatically: .run_automatically:
rules: rules:
- if: '$CMAKE_CI_PACKAGE == "true"' - if: '$CMAKE_CI_PACKAGE != null'
when: never when: never
- if: '$CMAKE_CI_NIGHTLY == "true"' - if: '$CMAKE_CI_NIGHTLY == "true"'
when: on_success when: on_success
@@ -44,7 +44,7 @@
.run_dependent: .run_dependent:
rules: rules:
- if: '$CMAKE_CI_PACKAGE == "true"' - if: '$CMAKE_CI_PACKAGE != null'
when: never when: never
- if: '($CMAKE_CI_NIGHTLY == "true" && $CMAKE_CI_NIGHTLY_IGNORE_DEPS == "true")' - if: '($CMAKE_CI_NIGHTLY == "true" && $CMAKE_CI_NIGHTLY_IGNORE_DEPS == "true")'
when: always when: always
@@ -62,7 +62,11 @@
.run_only_for_package: .run_only_for_package:
rules: 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: on_success
- when: never - when: never
+3
View File
@@ -18,6 +18,9 @@
- ssh-keygen -y -f $RSYNC_BINARY_KEY > $RSYNC_BINARY_KEY.pub - 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/ - 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: .rsync_upload_help:
stage: upload stage: upload
image: "fedora:34" image: "fedora:34"
+1 -17
View File
@@ -245,20 +245,6 @@ Commit with a message such as::
Release versions do not have the development topic section of Release versions do not have the development topic section of
the CMake Release Notes index page. 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 Update ``Source/CMakeVersion.cmake`` to set the version to
``$major.$minor.0-rc0``: ``$major.$minor.0-rc0``:
@@ -290,15 +276,13 @@ Merge the ``release-$ver`` branch to ``master``:
git merge --no-ff release-$ver git merge --no-ff release-$ver
Begin post-release development by restoring the development branch release Begin post-release development by restoring the development branch release
note infrastructure, the nightly package pipeline upload jobs, and note infrastructure, and the version date from ``origin/master``:
the version date from ``origin/master``:
.. code-block:: shell .. code-block:: shell
git checkout origin/master -- \ git checkout origin/master -- \
Source/CMakeVersion.cmake Help/release/dev/0-sample-topic.rst 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 $'/^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 Update ``Source/CMakeVersion.cmake`` to set the version to
``$major.$minor.$date``: ``$major.$minor.$date``: