From 17decc46917f26199abe6e00a028d35497972d40 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 29 Sep 2020 10:35:14 -0400 Subject: gitlab-ci: re-organize packaging pipeline Move the macOS package build job into the `build` stage. Since it depends on the sphinx doc package job, add a preceding `prep` stage. --- .gitlab-ci.yml | 30 ++++++++++++++++-------------- .gitlab/os-linux.yml | 10 ++++++++++ .gitlab/os-macos.yml | 2 +- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f4ebb02..06de7e4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,9 +12,9 @@ include: - local: .gitlab/upload.yml stages: + - prep - build - test - - package - test-ext - upload @@ -34,6 +34,16 @@ stages: # - dependency/needs jobs for required jobs ################################################################################ +# Prep jobs + +prep:doc: + extends: + - .fedora31_sphinx_package + - .cmake_prep_doc_linux + - .linux_builder_tags_qt + - .cmake_doc_artifacts + - .run_only_for_package + # Lint builds build:debian10-iwyu: @@ -57,14 +67,6 @@ build:fedora31-sphinx: - .linux_builder_tags_qt - .run_automatically -build:fedora31-sphinx-package: - extends: - - .fedora31_sphinx_package - - .cmake_build_linux - - .linux_builder_tags_qt - - .cmake_doc_artifacts - - .run_only_for_package - # Linux builds build:centos6-release: @@ -180,7 +182,7 @@ test:macos-xcode: needs: - test:macos-ninja -package:macos: +build:macos-package: extends: - .macos_package - .cmake_build_macos_package @@ -188,18 +190,18 @@ package:macos: - .macos_builder_tags_package - .run_only_for_package dependencies: - - build:fedora31-sphinx-package + - prep:doc needs: - - build:fedora31-sphinx-package + - prep:doc upload:macos: extends: - .rsync_upload - .run_only_for_package dependencies: - - package:macos + - build:macos-package needs: - - package:macos + - build:macos-package variables: RSYNC_DESTINATION: dev diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 75f8156..dd11cca 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -143,6 +143,16 @@ - cmake --version - ninja --version +.cmake_prep_doc_linux: + stage: prep + + script: + - *before_script_linux + - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake" + - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake" + + interruptible: true + .cmake_build_linux: stage: build diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml index 47e81d1..a500d36 100644 --- a/.gitlab/os-macos.yml +++ b/.gitlab/os-macos.yml @@ -111,7 +111,7 @@ interruptible: true .cmake_build_macos_package: - stage: package + stage: build script: - *before_script_macos -- cgit v0.12 From 45633a6297f21fd0f95c4a6e8318cd9b334e2a94 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 29 Sep 2020 10:42:07 -0400 Subject: gitlab-ci: add a job to make source packages --- .gitlab-ci.yml | 8 ++++++++ .gitlab/artifacts.yml | 3 +++ .gitlab/ci/cmake_version.cmake | 3 +++ .gitlab/ci/cmake_version.sh | 2 ++ .gitlab/os-linux.yml | 19 +++++++++++++++++++ 5 files changed, 35 insertions(+) create mode 100644 .gitlab/ci/cmake_version.cmake create mode 100755 .gitlab/ci/cmake_version.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 06de7e4..8f28e8f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,6 +36,14 @@ stages: # Prep jobs +prep:source: + extends: + - .linux_prep_source + - .cmake_prep_source_linux + - .linux_builder_tags + - .cmake_release_artifacts + - .run_only_for_package + prep:doc: extends: - .fedora31_sphinx_package diff --git a/.gitlab/artifacts.yml b/.gitlab/artifacts.yml index f1c0c7e..1c24003 100644 --- a/.gitlab/artifacts.yml +++ b/.gitlab/artifacts.yml @@ -74,6 +74,9 @@ # Any packages made. - build/cmake-*-Linux-x86_64.* - build/cmake-*-Darwin-x86_64.* + # Any source packages made. + - build/cmake-*.tar.gz + - build/cmake-*.zip .cmake_test_artifacts: artifacts: diff --git a/.gitlab/ci/cmake_version.cmake b/.gitlab/ci/cmake_version.cmake new file mode 100644 index 0000000..ef9f7f2 --- /dev/null +++ b/.gitlab/ci/cmake_version.cmake @@ -0,0 +1,3 @@ +get_filename_component(CMake_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) +include("${CMake_SOURCE_DIR}/Source/CMakeVersion.cmake") +message(STATUS ${CMake_VERSION}) diff --git a/.gitlab/ci/cmake_version.sh b/.gitlab/ci/cmake_version.sh new file mode 100755 index 0000000..03b1614 --- /dev/null +++ b/.gitlab/ci/cmake_version.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +cmake -P "${BASH_SOURCE%/*}/cmake_version.cmake" | cut -d ' ' -f 2 diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index dd11cca..74b2de7 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -11,6 +11,12 @@ GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" LAUNCHER: "scl enable devtoolset-6 rh-python36 --" +.linux_prep_source: + image: "fedora:32" + + variables: + GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" + ### Debian .debian10: @@ -143,6 +149,19 @@ - cmake --version - ninja --version +.cmake_prep_source_linux: + stage: prep + + script: + - *before_script_linux + - dnf install --setopt=install_weak_deps=False -y git-core + - v="$(.gitlab/ci/cmake_version.sh)" + - mkdir -p build/ + - git archive --format=tgz "--prefix=cmake-$v/" -o "build/cmake-$v.tar.gz" HEAD + - git -c core.autocrlf=true -c core.eol=crlf archive --format=zip --prefix="cmake-$v/" -o "build/cmake-$v.zip" HEAD + + interruptible: true + .cmake_prep_doc_linux: stage: prep -- cgit v0.12 From 448b411d999d0247038aca659506aa6f3962f7f6 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 29 Sep 2020 10:45:29 -0400 Subject: gitlab-ci: add a job to upload source packages --- .gitlab-ci.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8f28e8f..5c9865e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -52,6 +52,17 @@ prep:doc: - .cmake_doc_artifacts - .run_only_for_package +upload:source: + extends: + - .rsync_upload + - .run_only_for_package + dependencies: + - prep:source + needs: + - prep:source + variables: + RSYNC_DESTINATION: dev + # Lint builds build:debian10-iwyu: -- cgit v0.12