diff options
author | Brad King <brad.king@kitware.com> | 2021-01-26 21:08:11 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-01-27 15:29:38 (GMT) |
commit | 616bf0d2f033b1b8dcf59d4ec91fa0534d399d15 (patch) | |
tree | e43d4ce8bf5dbd7e08815999378700254ff6fbb6 /.gitlab/os-linux.yml | |
parent | 227ca689a764b1e3d590d7d47c70769e3baaa846 (diff) | |
download | CMake-616bf0d2f033b1b8dcf59d4ec91fa0534d399d15.zip CMake-616bf0d2f033b1b8dcf59d4ec91fa0534d399d15.tar.gz CMake-616bf0d2f033b1b8dcf59d4ec91fa0534d399d15.tar.bz2 |
gitlab-ci: consolidate release and package job infrastructure
Use `linux_release` in names associated with building or testing
release-style binaries. Add a `.linux_package` helper to adjust
the release binary build behavior for package-specific jobs.
Diffstat (limited to '.gitlab/os-linux.yml')
-rw-r--r-- | .gitlab/os-linux.yml | 64 |
1 files changed, 14 insertions, 50 deletions
diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 66a2666..28bfbc5 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -4,20 +4,13 @@ ### Release -.release_linux: - image: "kitware/cmake:build-linux-x86_64-deps-2020-04-02@sha256:77e9ab183f34680990db9da5945473e288f0d6556bce79ecc1589670d656e157" - - variables: - GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" - LAUNCHER: "scl enable devtoolset-6 rh-python36 --" - .linux_prep_source: image: "fedora:33" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" -.linux_package_x86_64: +.linux_release_x86_64: image: "kitware/cmake:build-linux-x86_64-deps-2020-04-02@sha256:77e9ab183f34680990db9da5945473e288f0d6556bce79ecc1589670d656e157" variables: @@ -25,7 +18,7 @@ LAUNCHER: "scl enable devtoolset-6 rh-python36 --" CMAKE_ARCH: x86_64 -.linux_package_aarch64: +.linux_release_aarch64: image: "kitware/cmake:build-linux-aarch64-deps-2020-12-21@sha256:0bd7dfe4e45593b04e39cd21e44011034610cfd376900558c5ef959bb1af15af" variables: @@ -33,6 +26,10 @@ LAUNCHER: "scl enable devtoolset-7 --" CMAKE_ARCH: aarch64 +.linux_package: + variables: + BOOTSTRAP_ARGS: '-- "-DCMake_DOC_ARTIFACT_PREFIX=$CI_PROJECT_DIR/build/install-doc"' + ### Debian .debian10: @@ -40,6 +37,7 @@ variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" + CMAKE_ARCH: x86_64 .debian10_iwyu: extends: .debian10 @@ -56,6 +54,7 @@ variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes" + CMAKE_ARCH: x86_64 #### Lint builds @@ -122,6 +121,7 @@ variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" + CMAKE_ARCH: x86_64 CTEST_LABELS: "CUDA" .cuda10.2_nvidia: @@ -225,11 +225,12 @@ interruptible: true -.cmake_build_linux_package: +.cmake_build_linux_release: stage: build script: # Bootstrap. + - mkdir -p build/ - cp -v Utilities/Release/linux/$CMAKE_ARCH/cache.txt build/CMakeCache.txt # Make sccache available. - .gitlab/ci/sccache.sh @@ -248,44 +249,7 @@ - git reset --hard # Bootstrap - cd build/ - - '$LAUNCHER ../bootstrap --parallel=$(nproc) --docdir=doc/cmake -- "-DCMake_DOC_ARTIFACT_PREFIX=$CI_PROJECT_DIR/build/install-doc"' - # FIXME: When CTest can drive an external CMake for the build as well, - # use the scripts here. - - "$LAUNCHER make -j$(nproc)" - # NOTE: This regex matches that used in the release build. - - "$LAUNCHER bin/ctest --output-on-failure -j$(nproc) -R '^(CMake\\.|CMakeLib\\.|CMakeServerLib\\.|RunCMake\\.ctest_memcheck)'" - # Make a package. - - bin/cpack -G TGZ - - bin/cpack -G STGZ - - sccache --show-stats - - interruptible: true - -.cmake_build_release_linux: - stage: build - - script: - # Bootstrap. - - mkdir build/ - - cp -v Utilities/Release/linux/x86_64/cache.txt build/CMakeCache.txt - # Make sccache available. - - .gitlab/ci/sccache.sh - - export PATH=$PWD/.gitlab:$PATH - # Append sccache settings to the cache. - - echo "CMAKE_C_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt - - echo "CMAKE_CXX_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt - # CI settings. - - echo "CMake_TEST_INSTALL:BOOL=OFF" >> build/CMakeCache.txt - - echo "CMAKE_INSTALL_PREFIX:PATH=$PWD/build/install" >> build/CMakeCache.txt - - echo "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON" >> build/CMakeCache.txt - # Appease Git. The Git in this container is old (1.7) and doesn't - # understand some things. But, it doesn't need to, so make it blind. - - mkdir -p .git/info - - echo "* -crlf" >> .git/info/attributes - - git reset --hard - # Bootstrap - - cd build/ - - "$LAUNCHER ../bootstrap --parallel=$(nproc) --docdir=doc/cmake" + - '$LAUNCHER ../bootstrap --parallel=$(nproc) --docdir=doc/cmake $BOOTSTRAP_ARGS' # FIXME: When CTest can drive an external CMake for the build as well, # use the scripts here. - "$LAUNCHER make -j$(nproc)" @@ -298,14 +262,14 @@ interruptible: true -.cmake_test_linux_package: +.cmake_test_linux_release: stage: test-ext script: - *before_script_linux # Make the CMake package available. - mkdir -p build/install - - tar -C build/install --strip-components=1 -xzf build/cmake-*-linux-x86_64.tar.gz + - tar -C build/install --strip-components=1 -xzf build/cmake-*-linux-$CMAKE_ARCH.tar.gz - .gitlab/ci/sccache.sh - sccache --start-server - sccache --show-stats |