From 5ab92d8e71a13a6b81ad7a5b7d635f8af8e5c31d Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 28 Feb 2023 10:11:29 -0500 Subject: gitlab-ci: add pre-build and post-build steps to macOS Apply the approach from commit 372ce5bffe (ci: add pre-build and post-build steps to Linux, 2022-12-05, v3.26.0-rc1~225^2~1) to build jobs on macOS. --- .gitlab/os-macos.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml index 9cdc8d4..ff77e1d 100644 --- a/.gitlab/os-macos.yml +++ b/.gitlab/os-macos.yml @@ -154,8 +154,10 @@ # Allow the server to already be running. - "sccache --start-server || :" - sccache --show-stats + - .gitlab/ci/pre_build.sh - ctest -VV -S .gitlab/ci/ctest_configure.cmake - ctest -VV -S .gitlab/ci/ctest_build.cmake + - .gitlab/ci/post_build.sh - sccache --show-stats interruptible: true -- cgit v0.12 From 05531a7c4e499847b7d174fb7697e840c223bc98 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 28 Feb 2023 09:59:39 -0500 Subject: gitlab-ci: add pre-build and post-build steps to Windows Apply the approach from commit 372ce5bffe (ci: add pre-build and post-build steps to Linux, 2022-12-05, v3.26.0-rc1~225^2~1) to build jobs on Windows. --- .gitlab/ci/post_build.ps1 | 4 ++++ .gitlab/ci/pre_build.ps1 | 4 ++++ .gitlab/os-windows.yml | 2 ++ 3 files changed, 10 insertions(+) create mode 100755 .gitlab/ci/post_build.ps1 create mode 100755 .gitlab/ci/pre_build.ps1 diff --git a/.gitlab/ci/post_build.ps1 b/.gitlab/ci/post_build.ps1 new file mode 100755 index 0000000..fbd8ae8 --- /dev/null +++ b/.gitlab/ci/post_build.ps1 @@ -0,0 +1,4 @@ +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().MainModule.FileName +if (Test-Path -Path ".gitlab/ci/post_build_$env:CMAKE_CONFIGURATION.ps1" -PathType Leaf) { + . ".gitlab/ci/post_build_$env:CMAKE_CONFIGURATION.ps1" +} diff --git a/.gitlab/ci/pre_build.ps1 b/.gitlab/ci/pre_build.ps1 new file mode 100755 index 0000000..3a56687 --- /dev/null +++ b/.gitlab/ci/pre_build.ps1 @@ -0,0 +1,4 @@ +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().MainModule.FileName +if (Test-Path -Path ".gitlab/ci/pre_build_$env:CMAKE_CONFIGURATION.ps1" -PathType Leaf) { + . ".gitlab/ci/pre_build_$env:CMAKE_CONFIGURATION.ps1" +} diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml index 24db802..ca5af43 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -358,8 +358,10 @@ - Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1 - sccache --start-server - sccache --show-stats + - (& "$pwsh" -File ".gitlab/ci/pre_build.ps1") - ctest -VV -S .gitlab/ci/ctest_configure.cmake - ctest -VV -S .gitlab/ci/ctest_build.cmake + - (& "$pwsh" -File ".gitlab/ci/post_build.ps1") - sccache --show-stats - sccache --stop-server -- cgit v0.12 From ce2e8253069fa1e5750b800a19f85c6e3b359bd8 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 28 Feb 2023 10:15:24 -0500 Subject: gitlab-ci: Simplify macOS packaging jobs Run cpack in a post-build step instead of duplicating the job script. --- .gitlab-ci.yml | 4 ++-- .gitlab/ci/package_macos.sh | 3 +++ .gitlab/ci/post_build_macos10.10_package.sh | 1 + .gitlab/ci/post_build_macos_package.sh | 1 + .gitlab/os-macos.yml | 13 ------------- 5 files changed, 7 insertions(+), 15 deletions(-) create mode 100644 .gitlab/ci/package_macos.sh create mode 100644 .gitlab/ci/post_build_macos10.10_package.sh create mode 100644 .gitlab/ci/post_build_macos_package.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 87a75e8..af1dc6c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -914,7 +914,7 @@ t:macos-arm64-xcode: b:macos-package: extends: - .macos_package - - .cmake_build_macos_package + - .cmake_build_macos - .cmake_release_artifacts - .macos_x86_64_tags_package - .run_only_for_package @@ -937,7 +937,7 @@ u:macos-package: b:macos10.10-package: extends: - .macos10.10_package - - .cmake_build_macos_package + - .cmake_build_macos - .cmake_release_artifacts - .macos_x86_64_tags_package - .run_only_for_package diff --git a/.gitlab/ci/package_macos.sh b/.gitlab/ci/package_macos.sh new file mode 100644 index 0000000..f5c178c --- /dev/null +++ b/.gitlab/ci/package_macos.sh @@ -0,0 +1,3 @@ +cd build +cpack -G TGZ +cpack -G DragNDrop diff --git a/.gitlab/ci/post_build_macos10.10_package.sh b/.gitlab/ci/post_build_macos10.10_package.sh new file mode 100644 index 0000000..3b7bc72 --- /dev/null +++ b/.gitlab/ci/post_build_macos10.10_package.sh @@ -0,0 +1 @@ +. .gitlab/ci/package_macos.sh diff --git a/.gitlab/ci/post_build_macos_package.sh b/.gitlab/ci/post_build_macos_package.sh new file mode 100644 index 0000000..3b7bc72 --- /dev/null +++ b/.gitlab/ci/post_build_macos_package.sh @@ -0,0 +1 @@ +. .gitlab/ci/package_macos.sh diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml index ff77e1d..652a67a 100644 --- a/.gitlab/os-macos.yml +++ b/.gitlab/os-macos.yml @@ -162,19 +162,6 @@ interruptible: true -.cmake_build_macos_package: - stage: build - - script: - - *before_script_macos - - ctest -VV -S .gitlab/ci/ctest_configure.cmake - - ctest -VV -S .gitlab/ci/ctest_build.cmake - - cd build - - cpack -G TGZ - - cpack -G DragNDrop - - interruptible: true - .cmake_test_macos: stage: test -- cgit v0.12 From 0929221ca3641ed890b15fc9abd416a5311138cf Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 28 Feb 2023 09:33:45 -0500 Subject: 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. --- .gitlab-ci.yml | 62 ++++------------------- .gitlab/artifacts.yml | 29 ----------- .gitlab/ci/CMakeCPack.cmake | 3 ++ .gitlab/ci/configure_windows_package_common.cmake | 2 + .gitlab/ci/package_info.cmake.in | 1 + .gitlab/ci/package_windows.ps1 | 7 +++ .gitlab/ci/package_windows_build.cmake | 40 +++++++++++++++ .gitlab/ci/post_build_windows_arm64_package.ps1 | 1 + .gitlab/ci/post_build_windows_i386_package.ps1 | 1 + .gitlab/ci/post_build_windows_x86_64_package.ps1 | 1 + .gitlab/os-windows.yml | 12 ----- .gitlab/rules.yml | 2 +- CMakeCPack.cmake | 4 ++ 13 files changed, 70 insertions(+), 95 deletions(-) create mode 100644 .gitlab/ci/CMakeCPack.cmake create mode 100644 .gitlab/ci/package_info.cmake.in create mode 100755 .gitlab/ci/package_windows.ps1 create mode 100644 .gitlab/ci/package_windows_build.cmake create mode 100755 .gitlab/ci/post_build_windows_arm64_package.ps1 create mode 100755 .gitlab/ci/post_build_windows_i386_package.ps1 create mode 100755 .gitlab/ci/post_build_windows_x86_64_package.ps1 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index af1dc6c..768a902 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,7 +16,6 @@ stages: - build - test - test-ext - - package - upload ################################################################################ @@ -37,7 +36,6 @@ stages: # Job prefixes: # - `b:` build -# - `k:` package # - `l:` lint # - `p:` prep # - `t:` test @@ -1239,7 +1237,7 @@ b:windows-x86_64-package: extends: - .windows_x86_64_package - .cmake_build_windows - - .cmake_build_package_artifacts + - .cmake_release_artifacts - .windows_x86_64_tags_nonconcurrent_vs2022 - .run_only_for_package dependencies: @@ -1247,20 +1245,6 @@ b:windows-x86_64-package: needs: - p:doc-package variables: - CMAKE_CI_ARTIFACTS_NAME: "artifacts-windows-x86_64-build" - -k:windows-x86_64-package: - extends: - - .windows_x86_64_package - - .cmake_package_windows - - .cmake_release_artifacts - - .windows_x86_64_tags_nonconcurrent_vs2022 - - .run_only_for_package - dependencies: - - b:windows-x86_64-package - needs: - - b:windows-x86_64-package - variables: CMAKE_CI_ARTIFACTS_NAME: "artifacts-windows-x86_64" u:windows-x86_64-package: @@ -1268,15 +1252,15 @@ u:windows-x86_64-package: - .rsync_upload_package - .run_only_for_package dependencies: - - k:windows-x86_64-package + - b:windows-x86_64-package needs: - - k:windows-x86_64-package + - b:windows-x86_64-package b:windows-i386-package: extends: - .windows_i386_package - .cmake_build_windows - - .cmake_build_package_artifacts + - .cmake_release_artifacts - .windows_x86_64_tags_nonconcurrent_vs2022 - .run_only_for_package dependencies: @@ -1284,20 +1268,6 @@ b:windows-i386-package: needs: - p:doc-package variables: - CMAKE_CI_ARTIFACTS_NAME: "artifacts-windows-i386-build" - -k:windows-i386-package: - extends: - - .windows_i386_package - - .cmake_package_windows - - .cmake_release_artifacts - - .windows_x86_64_tags_nonconcurrent_vs2022 - - .run_only_for_package - dependencies: - - b:windows-i386-package - needs: - - b:windows-i386-package - variables: CMAKE_CI_ARTIFACTS_NAME: "artifacts-windows-i386" u:windows-i386-package: @@ -1305,15 +1275,15 @@ u:windows-i386-package: - .rsync_upload_package - .run_only_for_package dependencies: - - k:windows-i386-package + - b:windows-i386-package needs: - - k:windows-i386-package + - b:windows-i386-package b:windows-arm64-package: extends: - .windows_arm64_package - .cmake_build_windows - - .cmake_build_package_artifacts + - .cmake_release_artifacts - .windows_x86_64_tags_nonconcurrent_vs2022_arm64 - .run_only_for_package dependencies: @@ -1321,20 +1291,6 @@ b:windows-arm64-package: needs: - p:doc-package variables: - CMAKE_CI_ARTIFACTS_NAME: "artifacts-windows-arm64-build" - -k:windows-arm64-package: - extends: - - .windows_arm64_package - - .cmake_package_windows - - .cmake_release_artifacts - - .windows_x86_64_tags_nonconcurrent_vs2022_arm64 - - .run_only_for_package - dependencies: - - b:windows-arm64-package - needs: - - b:windows-arm64-package - variables: CMAKE_CI_ARTIFACTS_NAME: "artifacts-windows-arm64" u:windows-arm64-package: @@ -1342,6 +1298,6 @@ u:windows-arm64-package: - .rsync_upload_package - .run_only_for_package dependencies: - - k:windows-arm64-package + - b:windows-arm64-package needs: - - k:windows-arm64-package + - b:windows-arm64-package diff --git a/.gitlab/artifacts.yml b/.gitlab/artifacts.yml index 1b5384f..3557596 100644 --- a/.gitlab/artifacts.yml +++ b/.gitlab/artifacts.yml @@ -63,35 +63,6 @@ - build/DartConfiguation.tcl - build/CTestCustom.cmake -.cmake_build_package_artifacts: - artifacts: - expire_in: 1d - name: "$CMAKE_CI_ARTIFACTS_NAME" - paths: - # Allow CPack to find CMAKE_ROOT. - - build/CMakeFiles/CMakeSourceDir.txt - - # Install rules. - - build/**/cmake_install.cmake - - # We need the main binaries. - - build/bin/ - - # Pass through the documentation. - - build/install-doc/ - - # CPack configuration. - - build/CPackConfig.cmake - - build/CMakeCPackOptions.cmake - - build/Source/QtDialog/QtDialogCPack.cmake - - # CPack/IFW packaging files. - - build/CMake*.qs - - # CPack/WIX packaging files. - - build/Utilities/Release/WiX/custom_action_dll*.wxs - - build/Utilities/Release/WiX/CustomAction/CMakeWiXCustomActions.* - .cmake_release_artifacts: artifacts: expire_in: 5d diff --git a/.gitlab/ci/CMakeCPack.cmake b/.gitlab/ci/CMakeCPack.cmake new file mode 100644 index 0000000..971fe54 --- /dev/null +++ b/.gitlab/ci/CMakeCPack.cmake @@ -0,0 +1,3 @@ +if(NOT "$ENV{CMAKE_CI_PACKAGE}" MATCHES "^(dev)?$") + configure_file(${CMAKE_CURRENT_LIST_DIR}/package_info.cmake.in ${CMake_BINARY_DIR}/ci_package_info.cmake @ONLY) +endif() diff --git a/.gitlab/ci/configure_windows_package_common.cmake b/.gitlab/ci/configure_windows_package_common.cmake index 46c0a3e..b3929a4 100644 --- a/.gitlab/ci/configure_windows_package_common.cmake +++ b/.gitlab/ci/configure_windows_package_common.cmake @@ -19,4 +19,6 @@ set(CMake_TEST_Qt5 OFF CACHE BOOL "") set(CMake_TEST_Qt6 OFF CACHE BOOL "") set(Python_FIND_REGISTRY NEVER CACHE STRING "") +set(CMake_CPACK_CUSTOM_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/CMakeCPack.cmake" CACHE FILEPATH "") + include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake") diff --git a/.gitlab/ci/package_info.cmake.in b/.gitlab/ci/package_info.cmake.in new file mode 100644 index 0000000..f9a5bb7 --- /dev/null +++ b/.gitlab/ci/package_info.cmake.in @@ -0,0 +1 @@ +set(CPACK_PACKAGE_FILE_NAME "@CPACK_PACKAGE_FILE_NAME@") diff --git a/.gitlab/ci/package_windows.ps1 b/.gitlab/ci/package_windows.ps1 new file mode 100755 index 0000000..9ec2942 --- /dev/null +++ b/.gitlab/ci/package_windows.ps1 @@ -0,0 +1,7 @@ +if (Test-Path -Path "build/ci_package_info.cmake" -PathType Leaf) { + cmake -P .gitlab/ci/package_windows_build.cmake +} else { + cd build + cpack -G ZIP + cpack -G WIX +} diff --git a/.gitlab/ci/package_windows_build.cmake b/.gitlab/ci/package_windows_build.cmake new file mode 100644 index 0000000..e6ff0a6 --- /dev/null +++ b/.gitlab/ci/package_windows_build.cmake @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.24) +include(build/ci_package_info.cmake) + +set(build "${CMAKE_CURRENT_BINARY_DIR}/build") + +file(GLOB paths RELATIVE "${CMAKE_CURRENT_BINARY_DIR}" + # Allow CPack to find CMAKE_ROOT. + "${build}/CMakeFiles/CMakeSourceDir.txt" + + # We need the main binaries. + "${build}/bin" + + # Pass through the documentation. + "${build}/install-doc" + + # CPack configuration. + "${build}/CPackConfig.cmake" + "${build}/CMakeCPackOptions.cmake" + "${build}/Source/QtDialog/QtDialogCPack.cmake" + + # CPack/IFW packaging files. + "${build}/CMake*.qs" + + # CPack/WIX packaging files. + "${build}/Utilities/Release/WiX/custom_action_dll*.wxs" + "${build}/Utilities/Release/WiX/CustomAction/CMakeWiXCustomActions.*" + ) + +file(GLOB_RECURSE paths_recurse RELATIVE "${CMAKE_CURRENT_BINARY_DIR}" + # Install rules. + "${build}/cmake_install.cmake" + "${build}/*/cmake_install.cmake" + ) + +# Create a "package" containing the build-tree files needed to build a package. +file(ARCHIVE_CREATE + OUTPUT build/${CPACK_PACKAGE_FILE_NAME}.build.zip + PATHS ${paths} ${paths_recurse} + FORMAT zip + ) diff --git a/.gitlab/ci/post_build_windows_arm64_package.ps1 b/.gitlab/ci/post_build_windows_arm64_package.ps1 new file mode 100755 index 0000000..f98d995 --- /dev/null +++ b/.gitlab/ci/post_build_windows_arm64_package.ps1 @@ -0,0 +1 @@ +. .gitlab/ci/package_windows.ps1 diff --git a/.gitlab/ci/post_build_windows_i386_package.ps1 b/.gitlab/ci/post_build_windows_i386_package.ps1 new file mode 100755 index 0000000..f98d995 --- /dev/null +++ b/.gitlab/ci/post_build_windows_i386_package.ps1 @@ -0,0 +1 @@ +. .gitlab/ci/package_windows.ps1 diff --git a/.gitlab/ci/post_build_windows_x86_64_package.ps1 b/.gitlab/ci/post_build_windows_x86_64_package.ps1 new file mode 100755 index 0000000..f98d995 --- /dev/null +++ b/.gitlab/ci/post_build_windows_x86_64_package.ps1 @@ -0,0 +1 @@ +. .gitlab/ci/package_windows.ps1 diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml index ca5af43..ded3e65 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -367,18 +367,6 @@ interruptible: true -.cmake_package_windows: - stage: package - - script: - - *before_script_windows - - Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1 - - cd build - - cpack -G ZIP - - cpack -G WIX - - interruptible: true - .cmake_test_windows: stage: test diff --git a/.gitlab/rules.yml b/.gitlab/rules.yml index 8fc40a7f..8efa304 100644 --- a/.gitlab/rules.yml +++ b/.gitlab/rules.yml @@ -70,7 +70,7 @@ when: on_success - if: '$CMAKE_CI_PACKAGE != null && $CI_JOB_STAGE == "prep"' when: manual - - if: '$CMAKE_CI_PACKAGE != null && $CI_JOB_STAGE != "package" && $CI_JOB_STAGE != "upload"' + - if: '$CMAKE_CI_PACKAGE != null && $CI_JOB_STAGE != "upload"' when: on_success - when: never diff --git a/CMakeCPack.cmake b/CMakeCPack.cmake index 38fec3f..798affd 100644 --- a/CMakeCPack.cmake +++ b/CMakeCPack.cmake @@ -264,5 +264,9 @@ set(CPACK_SOURCE_IGNORE_FILES "~$" ) +if(CMake_CPACK_CUSTOM_SCRIPT) + include(${CMake_CPACK_CUSTOM_SCRIPT}) +endif() + # include CPack model once all variables are set include(CPack) -- cgit v0.12 From f73649823bb5062d7150ffc1e83458de2813d6a5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 28 Feb 2023 12:05:25 -0500 Subject: gitlab-ci: Stage unsigned release package artifacts in a dedicated directory These artifacts need to be manually signed before distribution. Move them to a dedicated `unsigned/` directory to avoid accidental distribution without signing. --- .gitlab/artifacts.yml | 2 ++ .gitlab/ci/package_macos.sh | 9 +++++++++ .gitlab/ci/package_windows_build.cmake | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.gitlab/artifacts.yml b/.gitlab/artifacts.yml index 3557596..41f24ed 100644 --- a/.gitlab/artifacts.yml +++ b/.gitlab/artifacts.yml @@ -80,6 +80,8 @@ # Any source packages made. - build/cmake-*.tar.gz - build/cmake-*.zip + # Any unsigned packages made. + - build/unsigned/cmake-* .cmake_junit_artifacts: artifacts: diff --git a/.gitlab/ci/package_macos.sh b/.gitlab/ci/package_macos.sh index f5c178c..7625c5d 100644 --- a/.gitlab/ci/package_macos.sh +++ b/.gitlab/ci/package_macos.sh @@ -1,3 +1,12 @@ cd build cpack -G TGZ cpack -G DragNDrop + +case "$CMAKE_CI_PACKAGE" in + dev) + ;; + *) + mkdir -p unsigned + mv cmake-*-macos*-universal.* unsigned/ + ;; +esac diff --git a/.gitlab/ci/package_windows_build.cmake b/.gitlab/ci/package_windows_build.cmake index e6ff0a6..feb379c 100644 --- a/.gitlab/ci/package_windows_build.cmake +++ b/.gitlab/ci/package_windows_build.cmake @@ -33,8 +33,9 @@ file(GLOB_RECURSE paths_recurse RELATIVE "${CMAKE_CURRENT_BINARY_DIR}" ) # Create a "package" containing the build-tree files needed to build a package. +file(MAKE_DIRECTORY build/unsigned) file(ARCHIVE_CREATE - OUTPUT build/${CPACK_PACKAGE_FILE_NAME}.build.zip + OUTPUT build/unsigned/${CPACK_PACKAGE_FILE_NAME}.build.zip PATHS ${paths} ${paths_recurse} FORMAT zip ) -- cgit v0.12 From fc8a9818935d69368bf13901dc9f043067054b70 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 27 Feb 2023 11:17:59 -0500 Subject: gitlab-ci: Generalize package and help upload URLs --- .gitlab/rules.yml | 8 ++++---- .gitlab/upload.yml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab/rules.yml b/.gitlab/rules.yml index 8efa304..f530622 100644 --- a/.gitlab/rules.yml +++ b/.gitlab/rules.yml @@ -66,7 +66,7 @@ rules: - if: '$CMAKE_CI_PACKAGE == "dev"' variables: - RSYNC_DESTINATION: "dev" + RSYNC_DESTINATION: "kitware@cmake.org:dev/" when: on_success - if: '$CMAKE_CI_PACKAGE != null && $CI_JOB_STAGE == "prep"' when: manual @@ -78,19 +78,19 @@ rules: - if: '$CMAKE_CI_PACKAGE =~ /v[0-9]+\.[0-9]+/' variables: - RSYNC_DESTINATION: "$CMAKE_CI_PACKAGE" + RSYNC_DESTINATION: "kitware@cmake.org:$CMAKE_CI_PACKAGE/" CMAKE_CI_SPHINX_QTHELP: "ON" CMAKE_CI_VERSION_NO_GIT: "ON" when: manual - if: '$CMAKE_CI_PROJECT_MAIN_BRANCH != null && $CI_COMMIT_BRANCH != null && $CMAKE_CI_PROJECT_MAIN_BRANCH == $CI_COMMIT_BRANCH' variables: - RSYNC_DESTINATION: "git-master" + RSYNC_DESTINATION: "kitware@cmake.org:git-master/" CMAKE_CI_SPHINX_QTHELP: "OFF" CMAKE_CI_VERSION_NO_GIT: "OFF" when: on_success - if: '$CMAKE_CI_PROJECT_CONTINUOUS_BRANCH != null && $CI_COMMIT_BRANCH != null && $CMAKE_CI_PROJECT_CONTINUOUS_BRANCH == $CI_COMMIT_BRANCH' variables: - RSYNC_DESTINATION: "git-stage" + RSYNC_DESTINATION: "kitware@cmake.org:git-stage/" CMAKE_CI_SPHINX_QTHELP: "OFF" CMAKE_CI_VERSION_NO_GIT: "OFF" when: on_success diff --git a/.gitlab/upload.yml b/.gitlab/upload.yml index 745b078..114808f 100644 --- a/.gitlab/upload.yml +++ b/.gitlab/upload.yml @@ -17,7 +17,7 @@ - chmod 400 $RSYNC_BINARY_KEY - ssh-keygen -y -f $RSYNC_BINARY_KEY > $RSYNC_BINARY_KEY.pub - test -n "$RSYNC_DESTINATION" - - 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/ "$RSYNC_DESTINATION" .rsync_upload_help: stage: upload @@ -36,4 +36,4 @@ - chmod 400 $RSYNC_HELP_KEY - ssh-keygen -y -f $RSYNC_HELP_KEY > $RSYNC_HELP_KEY.pub - test -n "$RSYNC_DESTINATION" - - rsync -tv --recursive --delete -e "ssh -i $RSYNC_HELP_KEY -o StrictHostKeyChecking=no -o LogLevel=ERROR" build/html/ kitware@cmake.org:$RSYNC_DESTINATION/ + - rsync -tv --recursive --delete -e "ssh -i $RSYNC_HELP_KEY -o StrictHostKeyChecking=no -o LogLevel=ERROR" build/html/ "$RSYNC_DESTINATION" -- cgit v0.12 From 7c60a2625d8940cff786e6c6d432fca3fedacc00 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 28 Feb 2023 10:58:47 -0500 Subject: gitlab-ci: Optionally upload release packages to custom URL --- .gitlab/rules.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab/rules.yml b/.gitlab/rules.yml index f530622..b85b728 100644 --- a/.gitlab/rules.yml +++ b/.gitlab/rules.yml @@ -72,6 +72,10 @@ when: manual - if: '$CMAKE_CI_PACKAGE != null && $CI_JOB_STAGE != "upload"' when: on_success + - if: '$CMAKE_CI_PACKAGE != null && $CI_JOB_STAGE == "upload" && $CMAKE_CI_PACKAGE_URL != null' + variables: + RSYNC_DESTINATION: "$CMAKE_CI_PACKAGE_URL" + when: on_success - when: never .run_cmake_org_help: -- cgit v0.12