From 17f248fdfd173f7be43085e151ee2735f8830a62 Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Mon, 1 Feb 2021 22:30:27 +0100 Subject: [PATCH] [ci] CMake presets on Linux jobs. --- CMakePresets.json | 19 +++++++++++++++++-- scripts/ci/extends/template-build-linux.yml | 11 +++-------- scripts/ci/extends/test-artifacts.yml | 12 ++++++------ scripts/ci/jobs/build-gui-linux.yml | 6 +----- scripts/ci/jobs/build-linux-conan.yml | 3 +-- scripts/ci/jobs/build-linux-frontend.yml | 6 ++---- scripts/ci/jobs/build-linux.yml | 15 ++++++--------- scripts/env/eve/cli.sh | 3 +-- 8 files changed, 37 insertions(+), 38 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index 45417701b36..c4185b0da80 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -7,13 +7,20 @@ }, "configurePresets": [ { - "name": "release", + "name": "_ninja_release", + "hidden": true, "displayName": "Default Config (Release)", "description": "Default build using the Ninja generator", "generator": "Ninja", "binaryDir": "${sourceDir}/build/${presetName}", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release", + "CMAKE_BUILD_TYPE": "Release" + } + }, + { + "name": "release", + "inherits": "_ninja_release", + "cacheVariables": { "OGS_BUILD_UTILS": "ON", "OGS_USE_PYTHON": "ON" } @@ -35,6 +42,14 @@ "OGS_BUILD_GUI": "ON", "OGS_USE_NETCDF": "ON" } + }, + { + "name": "ci-simplest", + "inherits": "_ninja_release", + "cacheVariables": { + "OGS_USE_CONAN": "OFF", + "OGS_DISABLE_POETRY": "ON" + } } ] } diff --git a/scripts/ci/extends/template-build-linux.yml b/scripts/ci/extends/template-build-linux.yml index 92bf2a643df..346ff35eb45 100644 --- a/scripts/ci/extends/template-build-linux.yml +++ b/scripts/ci/extends/template-build-linux.yml @@ -9,17 +9,12 @@ before_script: - "echo \"For debugging run: docker run --rm -it -v $CI_BUILDS_DIR:/builds -w=$CI_PROJECT_DIR $CI_JOB_IMAGE\"" - - mkdir -p $BUILD_DIR - - cd $BUILD_DIR - ([ "${CONAN_USER_HOME}" == "${CI_PROJECT_DIR}/.conan" ]) && conan remove --system-reqs '*' - ([[ $BUILD_CTEST_LARGE_ON_MASTER && "${CI_COMMIT_BRANCH}" == "master" && "${CMAKE_ARGS}" == *"USE_PYTHON=ON"* ]]) && export BUILD_CTEST_LARGE=true script: - - "echo \"Running: cmake .. -G Ninja $CMAKE_ARGS -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES\"" - - > - cmake .. -G Ninja - $CMAKE_ARGS - -DCMAKE_BUILD_TYPE=$BUILD_TYPE - -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES + - cmake -S . --preset=$CMAKE_PRESET $CMAKE_ARGS -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES + - build_dir=${BUILD_DIR:-build/$CMAKE_PRESET} + - cd $build_dir - $BUILD_CMD_PREFIX cmake --build . --target package > >(tee make.output) - if [ "$BUILD_TESTS" = true ] ; then $BUILD_CMD_PREFIX cmake --build . --target tests ; fi - if [ "$BUILD_CTEST" = true ] ; then $BUILD_CMD_PREFIX cmake --build . --target ctest ; fi diff --git a/scripts/ci/extends/test-artifacts.yml b/scripts/ci/extends/test-artifacts.yml index 99fea5077af..424ff0e992e 100644 --- a/scripts/ci/extends/test-artifacts.yml +++ b/scripts/ci/extends/test-artifacts.yml @@ -1,12 +1,12 @@ .test-artifacts: artifacts: paths: - - $BUILD_DIR/Tests/ctest.xml - - $BUILD_DIR/Tests/testrunner.xml - - $BUILD_DIR/make.output - - $BUILD_DIR/*.zip - - $BUILD_DIR/*.tar.gz + - build/*/Tests/ctest.xml + - build/*/Tests/testrunner.xml + - build/*/make.output + - build/*/*.zip + - build/*/*.tar.gz expire_in: 1 week reports: junit: - - $BUILD_DIR/Tests/testrunner.xml + - build/*/Tests/testrunner.xml diff --git a/scripts/ci/jobs/build-gui-linux.yml b/scripts/ci/jobs/build-gui-linux.yml index ee0ba1e833f..b2b8b824cd3 100644 --- a/scripts/ci/jobs/build-gui-linux.yml +++ b/scripts/ci/jobs/build-gui-linux.yml @@ -10,11 +10,7 @@ build gui linux: - when: manual allow_failure: true variables: - BUILD_DIR: "build-gui-linux" + CMAKE_PRESET: release-gui CMAKE_ARGS: >- -DOGS_USE_CONAN=OFF - -DOGS_BUILD_CLI=OFF - -DOGS_BUILD_GUI=ON - -DOGS_BUILD_UTILS=ON - -DOGS_USE_NETCDF=ON -DOGS_INSTALL_DEPENDENCIES=ON diff --git a/scripts/ci/jobs/build-linux-conan.yml b/scripts/ci/jobs/build-linux-conan.yml index 34f3a983c07..baabe461e6e 100644 --- a/scripts/ci/jobs/build-linux-conan.yml +++ b/scripts/ci/jobs/build-linux-conan.yml @@ -4,10 +4,9 @@ build linux conan: - .rules-master-manual tags: [shell, envinf1-shell] variables: - BUILD_DIR: build + CMAKE_PRESET: release CMAKE_ARGS: >- -DBUILD_SHARED_LIBS=ON - -DOGS_BUILD_UTILS=ON -DOGS_USE_CONAN=AUTO -DOGS_USE_MFRONT=ON -DOGS_USE_XDMF=ON diff --git a/scripts/ci/jobs/build-linux-frontend.yml b/scripts/ci/jobs/build-linux-frontend.yml index 7d3e086a15d..a1106ef33da 100644 --- a/scripts/ci/jobs/build-linux-frontend.yml +++ b/scripts/ci/jobs/build-linux-frontend.yml @@ -6,10 +6,8 @@ build linux frontend: - frontend2 allow_failure: true variables: - BUILD_DIR: "build" CCACHE_DIR: "/data/ogs/.ccache" - CMAKE_ARGS: "-DOGS_USE_CONAN=OFF -DOGS_DISABLE_CCACHE=OFF -DOGS_CPU_ARCHITECTURE=generic" + CMAKE_PRESET: release + CMAKE_ARGS: "-DOGS_USE_CONAN=OFF -DOGS_USE_PYTHON=OFF -DOGS_CPU_ARCHITECTURE=generic" before_script: - source scripts/env/eve/cli.sh - - mkdir -p $BUILD_DIR - - cd $BUILD_DIR diff --git a/scripts/ci/jobs/build-linux.yml b/scripts/ci/jobs/build-linux.yml index 3873b170e81..d8c9da5f4ea 100644 --- a/scripts/ci/jobs/build-linux.yml +++ b/scripts/ci/jobs/build-linux.yml @@ -4,10 +4,9 @@ build linux: tags: [ docker ] timeout: 2h variables: - BUILD_DIR: "build" BUILD_CTEST_LARGE_ON_MASTER: "true" + CMAKE_PRESET: release CMAKE_ARGS: >- - -DOGS_BUILD_UTILS=ON -DOGS_USE_CONAN=OFF -DOGS_USE_MFRONT=ON -DOGS_$USE_PYTHON @@ -24,16 +23,16 @@ build linux (no unity): tags: [ docker ] timeout: 1h variables: - BUILD_DIR: "build-no-unity" + BUILD_DIR: "build/no-unity" BUILD_TESTS: "false" BUILD_CTEST: "false" + CMAKE_PRESET: release CMAKE_ARGS: >- - -DOGS_BUILD_UTILS=ON -DOGS_USE_CONAN=OFF - -DOGS_USE_UNITY_BUILDS=OFF -DOGS_USE_MFRONT=ON + -DOGS_USE_UNITY_BUILDS=OFF -DOGS_USE_XDMF=ON - -DOGS_USE_PYTHON=ON + -B $BUILD_DIR build linux (no deps, no procs): image: $CONTAINER_GCC_IMAGE @@ -41,9 +40,7 @@ build linux (no deps, no procs): tags: [ docker ] timeout: 1h variables: - BUILD_DIR: "build-no-unity" BUILD_TESTS: "false" BUILD_CTEST: "false" BUILD_PROCESSES: "SteadyStateDiffusion" - CMAKE_ARGS: >- - -DOGS_USE_CONAN=OFF + CMAKE_PRESET: ci-simplest diff --git a/scripts/env/eve/cli.sh b/scripts/env/eve/cli.sh index dfeee0cfa8e..19e453d8553 100644 --- a/scripts/env/eve/cli.sh +++ b/scripts/env/eve/cli.sh @@ -8,10 +8,9 @@ fi module use /global/apps/modulefiles module load foss/2019b -module load CMake/3.15.3 +module load cmake/3.19.4-1 module load ninja module load git/2.23.0 -module load git-lfs/2.7.1 # Libraries module load boost/1.67.0-1 -- GitLab