From eefa0ed0fa6b7f520d77b85829951cd16e81a0b0 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Jan 2021 17:11:19 -0500 Subject: ci: update to use CMake 3.19.3 --- .gitlab/ci/cmake.ps1 | 4 ++-- .gitlab/ci/cmake.sh | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.gitlab/ci/cmake.ps1 b/.gitlab/ci/cmake.ps1 index e7b4de7..c5bf958 100755 --- a/.gitlab/ci/cmake.ps1 +++ b/.gitlab/ci/cmake.ps1 @@ -1,7 +1,7 @@ $erroractionpreference = "stop" -$version = "3.19.0" -$sha256sum = "67BBDA67C98C5F0789199FE1DB650F12274A6AD40FD8CAE88D208029AC618905" +$version = "3.19.3" +$sha256sum = "3838E11A0DB08F97D687F061882A1E52807010A313F3AC716015B3587CA3F20E" $filename = "cmake-$version-win64-x64" $tarball = "$filename.zip" diff --git a/.gitlab/ci/cmake.sh b/.gitlab/ci/cmake.sh index 2547663..6357849 100755 --- a/.gitlab/ci/cmake.sh +++ b/.gitlab/ci/cmake.sh @@ -2,21 +2,21 @@ set -e -readonly version="3.19.0" +readonly version="3.19.3" -case "$( uname -s )" in - Linux) +case "$(uname -s)-$(uname -m)" in + Linux-x86_64) shatool="sha256sum" - sha256sum="5446cdee900e906e46162a5a7be9b4542bb5e886041cf8cffeda62aae2696ccf" - platform="Linux" + sha256sum="c18b65697e9679e5c88dccede08c323cd3d3730648e59048047bba82097e0ffc" + platform="Linux-x86_64" ;; - Darwin) + Darwin-*) shatool="shasum -a 256" - sha256sum="315eb5500753f797075b6ea43189420e97b0b9f32c8fc87ec94ba1d80b72eb7f" - platform="Darwin" + sha256sum="a6b79ad05f89241a05797510e650354d74ff72cc988981cdd1eb2b3b2bda66ac" + platform="macos-universal" ;; *) - echo "Unrecognized platform $( uname -s )" + echo "Unrecognized platform $(uname -s)-$(uname -m)" exit 1 ;; esac @@ -24,7 +24,7 @@ readonly shatool readonly sha256sum readonly platform -readonly filename="cmake-$version-$platform-x86_64" +readonly filename="cmake-$version-$platform" readonly tarball="$filename.tar.gz" cd .gitlab -- cgit v0.12 From 88e049e327978e8bd84e77cc71287dd2912aa226 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 27 Jan 2021 08:26:25 -0500 Subject: ci: add docker spec to build ninja for linux-aarch64 --- .gitlab/ci/docker/ninja/centos7-aarch64.bash | 20 ++++++++++++++++++++ .gitlab/ci/docker/ninja/centos7-aarch64/Dockerfile | 7 +++++++ .../ci/docker/ninja/centos7-aarch64/build_ninja.sh | 11 +++++++++++ 3 files changed, 38 insertions(+) create mode 100755 .gitlab/ci/docker/ninja/centos7-aarch64.bash create mode 100644 .gitlab/ci/docker/ninja/centos7-aarch64/Dockerfile create mode 100755 .gitlab/ci/docker/ninja/centos7-aarch64/build_ninja.sh diff --git a/.gitlab/ci/docker/ninja/centos7-aarch64.bash b/.gitlab/ci/docker/ninja/centos7-aarch64.bash new file mode 100755 index 0000000..d24967c --- /dev/null +++ b/.gitlab/ci/docker/ninja/centos7-aarch64.bash @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -e +set -x + +cleanup() { + docker container rm -fv "$build_container" >/dev/null 2>&1 || true + docker image rm -f "$build_image" >/dev/null 2>&1 || true +} + +readonly suffix="-$(date -u +%Y-%m-%d)-${RANDOM}" +readonly build_container="ninja-build-linux-aarch64$suffix" +readonly build_image="ninja:build-linux-aarch64$suffix" +readonly git_tag="${1-v1.10.2}" + +trap "cleanup" EXIT INT TERM + +docker image build --build-arg GIT_TAG="$git_tag" --tag="$build_image" "${BASH_SOURCE%/*}/centos7-aarch64" +docker container create --name "$build_container" "$build_image" +docker cp "$build_container:/ninja/ninja" "ninja" diff --git a/.gitlab/ci/docker/ninja/centos7-aarch64/Dockerfile b/.gitlab/ci/docker/ninja/centos7-aarch64/Dockerfile new file mode 100644 index 0000000..d9e1cc6 --- /dev/null +++ b/.gitlab/ci/docker/ninja/centos7-aarch64/Dockerfile @@ -0,0 +1,7 @@ +FROM kitware/cmake:build-linux-aarch64-base-2020-12-21 +MAINTAINER Brad King + +ARG GIT_TAG=v1.10.2 + +COPY build_ninja.sh /root/build_ninja.sh +RUN scl enable devtoolset-7 -- sh /root/build_ninja.sh $GIT_TAG diff --git a/.gitlab/ci/docker/ninja/centos7-aarch64/build_ninja.sh b/.gitlab/ci/docker/ninja/centos7-aarch64/build_ninja.sh new file mode 100755 index 0000000..7e2602c --- /dev/null +++ b/.gitlab/ci/docker/ninja/centos7-aarch64/build_ninja.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +git clone https://github.com/ninja-build/ninja.git +cd ninja +git checkout "${1-v1.10.2}" +./configure.py --bootstrap +./ninja all +./ninja_test +strip ninja -- cgit v0.12 From 54c2c5f88906ef2e866053a260479592c38f4a12 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Jan 2021 17:31:14 -0500 Subject: ci: generalize ninja download script to support non-upstream builds --- .gitlab/ci/ninja.sh | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.gitlab/ci/ninja.sh b/.gitlab/ci/ninja.sh index 9011bbc..93692f1 100755 --- a/.gitlab/ci/ninja.sh +++ b/.gitlab/ci/ninja.sh @@ -3,33 +3,32 @@ set -e readonly version="1.10.2" +baseurl="https://github.com/ninja-build/ninja/releases/download/v$version" -case "$( uname -s )" in - Linux) +case "$(uname -s)-$(uname -m)" in + Linux-x86_64) shatool="sha256sum" sha256sum="763464859c7ef2ea3a0a10f4df40d2025d3bb9438fcb1228404640410c0ec22d" - platform="linux" + filename="ninja-linux" ;; - Darwin) + Darwin-*) shatool="shasum -a 256" sha256sum="6fa359f491fac7e5185273c6421a000eea6a2f0febf0ac03ac900bd4d80ed2a5" - platform="mac" + filename="ninja-mac" ;; *) - echo "Unrecognized platform $( uname -s )" + echo "Unrecognized platform $(uname -s)-$(uname -m)" exit 1 ;; esac readonly shatool readonly sha256sum -readonly platform -readonly filename="ninja-$platform" readonly tarball="$filename.zip" cd .gitlab echo "$sha256sum $tarball" > ninja.sha256sum -curl -OL "https://github.com/ninja-build/ninja/releases/download/v$version/$tarball" +curl -OL "$baseurl/$tarball" $shatool --check ninja.sha256sum ./cmake/bin/cmake -E tar xf "$tarball" -- cgit v0.12 From a601ed8e0e17cf004a8f2f7c290568afaf694642 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 27 Jan 2021 08:36:27 -0500 Subject: ci: download ninja on aarch64 --- .gitlab/ci/ninja.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitlab/ci/ninja.sh b/.gitlab/ci/ninja.sh index 93692f1..8ead670 100755 --- a/.gitlab/ci/ninja.sh +++ b/.gitlab/ci/ninja.sh @@ -11,6 +11,13 @@ case "$(uname -s)-$(uname -m)" in sha256sum="763464859c7ef2ea3a0a10f4df40d2025d3bb9438fcb1228404640410c0ec22d" filename="ninja-linux" ;; + Linux-aarch64) + shatool="sha256sum" + sha256sum="c0c29925fd7f0f24981b3b9d18353c7111c9af59eb6e6b0ffc0c4914cdc7999c" + # Use binary built by adjacent 'docker/ninja/centos7-aarch64.bash' script. + baseurl="https://cmake.org/files/dependencies" + filename="ninja-$version-1-linux-aarch64" + ;; Darwin-*) shatool="shasum -a 256" sha256sum="6fa359f491fac7e5185273c6421a000eea6a2f0febf0ac03ac900bd4d80ed2a5" -- cgit v0.12 From 227ca689a764b1e3d590d7d47c70769e3baaa846 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Jan 2021 17:17:02 -0500 Subject: ci: download cmake on aarch64 --- .gitlab/ci/cmake.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitlab/ci/cmake.sh b/.gitlab/ci/cmake.sh index 6357849..e02eb8a 100755 --- a/.gitlab/ci/cmake.sh +++ b/.gitlab/ci/cmake.sh @@ -10,6 +10,11 @@ case "$(uname -s)-$(uname -m)" in sha256sum="c18b65697e9679e5c88dccede08c323cd3d3730648e59048047bba82097e0ffc" platform="Linux-x86_64" ;; + Linux-aarch64) + shatool="sha256sum" + sha256sum="66e507c97ffb586d7ca6567890808b792c8eb004b645706df6fbf27826a395a2" + platform="Linux-aarch64" + ;; Darwin-*) shatool="shasum -a 256" sha256sum="a6b79ad05f89241a05797510e650354d74ff72cc988981cdd1eb2b3b2bda66ac" -- cgit v0.12 From 616bf0d2f033b1b8dcf59d4ec91fa0534d399d15 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Jan 2021 16:08:11 -0500 Subject: 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. --- .gitlab-ci.yml | 20 +++++----- .gitlab/os-linux.yml | 64 +++++++----------------------- Utilities/Release/linux/aarch64/Dockerfile | 2 +- Utilities/Release/linux/x86_64/Dockerfile | 2 +- 4 files changed, 27 insertions(+), 61 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 680d77b..b4bc718 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -93,8 +93,8 @@ build:fedora33-sphinx: build:centos6-release: extends: - - .release_linux - - .cmake_build_release_linux + - .linux_release_x86_64 + - .cmake_build_linux_release - .cmake_release_artifacts - .linux_builder_tags - .run_manually @@ -102,7 +102,7 @@ build:centos6-release: test:debian10-ninja: extends: - .debian10_ninja - - .cmake_test_linux_package + - .cmake_test_linux_release - .linux_builder_tags_qt - .run_dependent dependencies: @@ -113,7 +113,7 @@ test:debian10-ninja: test:fedora33-makefiles: extends: - .fedora33_makefiles - - .cmake_test_linux_package + - .cmake_test_linux_release - .linux_builder_tags_qt - .run_dependent dependencies: @@ -124,7 +124,7 @@ test:fedora33-makefiles: test:cuda10.2-nvidia: extends: - .cuda10.2_nvidia - - .cmake_test_linux_package + - .cmake_test_linux_release - .linux_builder_tags_cuda - .run_dependent dependencies: @@ -165,8 +165,9 @@ test:fedora33-ninja-multi: build:linux-x86_64-package: extends: - - .linux_package_x86_64 - - .cmake_build_linux_package + - .linux_package + - .linux_release_x86_64 + - .cmake_build_linux_release - .cmake_release_artifacts - .linux_builder_tags - .run_only_for_package @@ -188,8 +189,9 @@ upload:linux-x86_64-package: build:linux-aarch64-package: extends: - - .linux_package_aarch64 - - .cmake_build_linux_package + - .linux_package + - .linux_release_aarch64 + - .cmake_build_linux_release - .cmake_release_artifacts - .linux_builder_tags_aarch64 - .run_only_for_package 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 diff --git a/Utilities/Release/linux/aarch64/Dockerfile b/Utilities/Release/linux/aarch64/Dockerfile index fe9b02c..9abae2a 100644 --- a/Utilities/Release/linux/aarch64/Dockerfile +++ b/Utilities/Release/linux/aarch64/Dockerfile @@ -5,7 +5,7 @@ # Build using the CMake source directory as the build context. # The resulting image will have an '/out' directory containing the package. -# Keep this in sync with the `.gitlab-ci.yml` `release_linux` image. +# Keep this in sync with the `.gitlab/os-linux.yml` `.linux_release_aarch64` image. ARG FROM_IMAGE_NAME=kitware/cmake:build-linux-aarch64-deps-2020-12-21 ARG FROM_IMAGE_DIGEST=@sha256:0bd7dfe4e45593b04e39cd21e44011034610cfd376900558c5ef959bb1af15af ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST diff --git a/Utilities/Release/linux/x86_64/Dockerfile b/Utilities/Release/linux/x86_64/Dockerfile index b448108..8c98d3e 100644 --- a/Utilities/Release/linux/x86_64/Dockerfile +++ b/Utilities/Release/linux/x86_64/Dockerfile @@ -5,7 +5,7 @@ # Build using the CMake source directory as the build context. # The resulting image will have an '/out' directory containing the package. -# Keep this in sync with the `.gitlab-ci.yml` `release_linux` image. +# Keep this in sync with the `.gitlab/os-linux.yml` `.linux_release_x86_64` image. ARG FROM_IMAGE_NAME=kitware/cmake:build-linux-x86_64-deps-2020-04-02 ARG FROM_IMAGE_DIGEST=@sha256:77e9ab183f34680990db9da5945473e288f0d6556bce79ecc1589670d656e157 ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST -- cgit v0.12 From a54e43670d05440b0808aa11fe19f97a048204cb Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Jan 2021 16:14:51 -0500 Subject: gitlab-ci: rename build:centos6-{release => x86_64} This makes room for a future equivalent for other architectures. --- .gitlab-ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b4bc718..a1af51c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -91,7 +91,7 @@ build:fedora33-sphinx: # Linux builds -build:centos6-release: +build:centos6-x86_64: extends: - .linux_release_x86_64 - .cmake_build_linux_release @@ -106,9 +106,9 @@ test:debian10-ninja: - .linux_builder_tags_qt - .run_dependent dependencies: - - build:centos6-release + - build:centos6-x86_64 needs: - - build:centos6-release + - build:centos6-x86_64 test:fedora33-makefiles: extends: @@ -117,9 +117,9 @@ test:fedora33-makefiles: - .linux_builder_tags_qt - .run_dependent dependencies: - - build:centos6-release + - build:centos6-x86_64 needs: - - build:centos6-release + - build:centos6-x86_64 test:cuda10.2-nvidia: extends: @@ -128,9 +128,9 @@ test:cuda10.2-nvidia: - .linux_builder_tags_cuda - .run_dependent dependencies: - - build:centos6-release + - build:centos6-x86_64 needs: - - build:centos6-release + - build:centos6-x86_64 build:fedora33-ninja: extends: -- cgit v0.12 From d997637fa3e52a504bc7aa748329dfdf026924d8 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Jan 2021 15:41:43 -0500 Subject: gitlab-ci: add rules infrastructure to allow non-MR jobs --- .gitlab/rules.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab/rules.yml b/.gitlab/rules.yml index 5ee8333..e8c527d 100644 --- a/.gitlab/rules.yml +++ b/.gitlab/rules.yml @@ -9,6 +9,8 @@ - if: '($CMAKE_CI_PROJECT_CONTINUOUS_BRANCH != "" && $CI_COMMIT_BRANCH == $CMAKE_CI_PROJECT_CONTINUOUS_BRANCH && $CMAKE_CI_JOB_CONTINUOUS == "true")' when: delayed start_in: 5 minutes + - if: '($CMAKE_CI_NO_MR == "true" && $CI_MERGE_REQUEST_ID)' + when: never - if: '$CI_MERGE_REQUEST_ID' when: manual - if: '$CI_PROJECT_PATH == "cmake/cmake"' @@ -24,6 +26,8 @@ when: on_success - if: '($CMAKE_CI_PROJECT_CONTINUOUS_BRANCH != "" && $CI_COMMIT_BRANCH == $CMAKE_CI_PROJECT_CONTINUOUS_BRANCH && $CMAKE_CI_JOB_CONTINUOUS == "true")' when: on_success + - if: '($CMAKE_CI_NO_MR == "true" && $CI_MERGE_REQUEST_ID)' + when: never - if: '$CI_MERGE_REQUEST_ID' when: on_success - if: '$CI_PROJECT_PATH == "cmake/cmake"' @@ -36,6 +40,8 @@ when: never - if: '$CMAKE_CI_NIGHTLY == "true"' when: on_success + - if: '($CMAKE_CI_NO_MR == "true" && $CI_MERGE_REQUEST_ID)' + when: never - if: '$CI_MERGE_REQUEST_ID' when: on_success - if: '$CI_PROJECT_PATH == "cmake/cmake"' -- cgit v0.12 From 300a91d42d1829f053db0bba2443445eadc3aee8 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Jan 2021 16:17:13 -0500 Subject: gitlab-ci: add build:centos7-aarch64 job Test building our release for the `aarch64` architecture. For now, leave this job out during merge requests. --- .gitlab-ci.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a1af51c..2905298 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -99,6 +99,16 @@ build:centos6-x86_64: - .linux_builder_tags - .run_manually +build:centos7-aarch64: + extends: + - .linux_release_aarch64 + - .cmake_build_linux_release + - .cmake_release_artifacts + - .linux_builder_tags_aarch64 + - .run_manually + variables: + CMAKE_CI_NO_MR: "true" + test:debian10-ninja: extends: - .debian10_ninja -- cgit v0.12 From 430224b6e8406527b4424e62d9edad24dfc386ac Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 26 Jan 2021 16:45:56 -0500 Subject: gitlab-ci: add test:debian10-aarch64-ninja job --- .gitlab-ci.yml | 13 ++++ .gitlab/ci/configure_debian10_aarch64_ninja.cmake | 65 ++++++++++++++++++++ .gitlab/ci/docker/debian10-aarch64/Dockerfile | 5 ++ .gitlab/ci/docker/debian10-aarch64/install_deps.sh | 71 ++++++++++++++++++++++ .gitlab/os-linux.yml | 22 +++++++ 5 files changed, 176 insertions(+) create mode 100644 .gitlab/ci/configure_debian10_aarch64_ninja.cmake create mode 100644 .gitlab/ci/docker/debian10-aarch64/Dockerfile create mode 100755 .gitlab/ci/docker/debian10-aarch64/install_deps.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2905298..672df5a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -120,6 +120,19 @@ test:debian10-ninja: needs: - build:centos6-x86_64 +test:debian10-aarch64-ninja: + extends: + - .debian10_aarch64_ninja + - .cmake_test_linux_release + - .linux_builder_tags_aarch64_qt + - .run_dependent + dependencies: + - build:centos7-aarch64 + needs: + - build:centos7-aarch64 + variables: + CMAKE_CI_NO_MR: "true" + test:fedora33-makefiles: extends: - .fedora33_makefiles diff --git a/.gitlab/ci/configure_debian10_aarch64_ninja.cmake b/.gitlab/ci/configure_debian10_aarch64_ninja.cmake new file mode 100644 index 0000000..12d0e02 --- /dev/null +++ b/.gitlab/ci/configure_debian10_aarch64_ninja.cmake @@ -0,0 +1,65 @@ +set(CMake_TEST_FindALSA "ON" CACHE BOOL "") +set(CMake_TEST_FindBLAS "ON" CACHE BOOL "") +set(CMake_TEST_FindBoost "ON" CACHE BOOL "") +set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "") +set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "") +set(CMake_TEST_FindCups "ON" CACHE BOOL "") +set(CMake_TEST_FindCURL "ON" CACHE BOOL "") +set(CMake_TEST_FindDoxygen_Dot "ON" CACHE BOOL "") +set(CMake_TEST_FindDoxygen "ON" CACHE BOOL "") +set(CMake_TEST_FindEXPAT "ON" CACHE BOOL "") +set(CMake_TEST_FindFontconfig "ON" CACHE BOOL "") +set(CMake_TEST_FindFreetype "ON" CACHE BOOL "") +set(CMake_TEST_FindGDAL "ON" CACHE BOOL "") +set(CMake_TEST_FindGIF "ON" CACHE BOOL "") +set(CMake_TEST_FindGit "ON" CACHE BOOL "") +set(CMake_TEST_FindGLEW "ON" CACHE BOOL "") +set(CMake_TEST_FindGnuTLS "ON" CACHE BOOL "") +set(CMake_TEST_FindGSL "ON" CACHE BOOL "") +set(CMake_TEST_FindGTest "ON" CACHE BOOL "") +set(CMake_TEST_FindGTK2 "ON" CACHE BOOL "") +set(CMake_TEST_FindIconv "ON" CACHE BOOL "") +set(CMake_TEST_FindIntl "ON" CACHE BOOL "") +set(CMake_TEST_FindJPEG "ON" CACHE BOOL "") +set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "") +set(CMake_TEST_FindLAPACK "ON" CACHE BOOL "") +set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "") +set(CMake_TEST_FindLibinput "ON" CACHE BOOL "") +set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "") +set(CMake_TEST_FindLibUV "ON" CACHE BOOL "") +set(CMake_TEST_FindLibXml2 "ON" CACHE BOOL "") +set(CMake_TEST_FindLibXslt "ON" CACHE BOOL "") +set(CMake_TEST_FindMPI_C "ON" CACHE BOOL "") +set(CMake_TEST_FindMPI_CXX "ON" CACHE BOOL "") +set(CMake_TEST_FindMPI_Fortran "ON" CACHE BOOL "") +set(CMake_TEST_FindMPI "ON" CACHE BOOL "") +set(CMake_TEST_FindODBC "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenMP_Fortran "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenSSL "ON" CACHE BOOL "") +set(CMake_TEST_FindPatch "ON" CACHE BOOL "") +set(CMake_TEST_FindPNG "ON" CACHE BOOL "") +set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "") +set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "") +set(CMake_TEST_FindPython "ON" CACHE BOOL "") +set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "") +set(CMake_TEST_FindPython_PyPy "ON" CACHE BOOL "") +set(CMake_TEST_FindRuby "ON" CACHE BOOL "") +set(CMake_TEST_FindSDL "ON" CACHE BOOL "") +set(CMake_TEST_FindSQLite3 "ON" CACHE BOOL "") +set(CMake_TEST_FindTIFF "ON" CACHE BOOL "") +set(CMake_TEST_FindX11 "ON" CACHE BOOL "") +set(CMake_TEST_FindXalanC "ON" CACHE BOOL "") +set(CMake_TEST_FindXercesC "ON" CACHE BOOL "") +set(CMake_TEST_Fortran_SUBMODULES "ON" CACHE BOOL "") +set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "") +set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "") +set(CMake_TEST_IPO_WORKS_Fortran "ON" CACHE BOOL "") +set(CMake_TEST_Qt5 "ON" CACHE BOOL "") +set(CMake_TEST_UseSWIG "ON" CACHE BOOL "") + +include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/docker/debian10-aarch64/Dockerfile b/.gitlab/ci/docker/debian10-aarch64/Dockerfile new file mode 100644 index 0000000..2079795 --- /dev/null +++ b/.gitlab/ci/docker/debian10-aarch64/Dockerfile @@ -0,0 +1,5 @@ +FROM arm64v8/debian:10 +MAINTAINER Brad King + +COPY install_deps.sh /root/install_deps.sh +RUN sh /root/install_deps.sh diff --git a/.gitlab/ci/docker/debian10-aarch64/install_deps.sh b/.gitlab/ci/docker/debian10-aarch64/install_deps.sh new file mode 100755 index 0000000..3fc67e8 --- /dev/null +++ b/.gitlab/ci/docker/debian10-aarch64/install_deps.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +set -e + +apt-get update + +# Install build requirements. +apt-get install -y \ + libssl-dev + +# Install development tools. +apt-get install -y \ + g++ \ + curl \ + git + +# Install iwyu runtime deps. +apt-get install -y \ + clang-6.0 \ + libncurses6 + +# Packages needed to test find modules. +apt-get install -y \ + alsa-utils \ + doxygen graphviz \ + gnutls-dev \ + libarchive-dev \ + libblas-dev \ + libboost-dev \ + libboost-filesystem-dev \ + libboost-program-options-dev \ + libboost-python-dev \ + libboost-thread-dev \ + libbz2-dev \ + libcups2-dev \ + libcurl4-gnutls-dev \ + libfontconfig1-dev \ + libfreetype6-dev \ + libgdal-dev \ + libgif-dev \ + libgl1-mesa-dev \ + libglew-dev \ + libgsl-dev \ + libgtest-dev \ + libgtk2.0-dev \ + libinput-dev \ + libjpeg-dev \ + libjsoncpp-dev \ + liblapack-dev \ + liblzma-dev \ + libopenmpi-dev openmpi-bin \ + libpng-dev \ + libpq-dev postgresql-server-dev-11 \ + libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler \ + libsdl-dev \ + libsqlite3-dev \ + libtiff-dev \ + libuv1-dev \ + libx11-dev \ + libxalan-c-dev \ + libxerces-c-dev \ + libxml2-dev libxml2-utils \ + libxslt-dev xsltproc \ + python2 python2-dev python-numpy pypy pypy-dev \ + python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv \ + qtbase5-dev qtbase5-dev-tools \ + ruby ruby-dev \ + swig \ + unixodbc-dev + +apt-get clean diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 28bfbc5..e36d97d 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -47,6 +47,13 @@ CTEST_NO_WARNINGS_ALLOWED: 1 CMake_SKIP_INSTALL: 1 +.debian10_aarch64: + image: "kitware/cmake:ci-debian10-aarch64-2021-01-26" + + variables: + GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" + CMAKE_ARCH: aarch64 + ### Fedora .fedora33: @@ -91,6 +98,13 @@ CMAKE_CONFIGURATION: debian10_ninja CTEST_NO_WARNINGS_ALLOWED: 1 +.debian10_aarch64_ninja: + extends: .debian10_aarch64 + + variables: + CMAKE_CONFIGURATION: debian10_aarch64_ninja + CTEST_NO_WARNINGS_ALLOWED: 1 + .fedora33_ninja: extends: .fedora33 @@ -170,6 +184,14 @@ - docker - linux-aarch64 +.linux_builder_tags_aarch64_qt: + tags: + - cmake + - build + - docker + - linux-aarch64 + - linux-3.17 # Needed to be able to load Fedora's Qt libraries. + ## Linux-specific scripts .before_script_linux: &before_script_linux -- cgit v0.12