diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ef21ef4e262d86e438e8feeaf74493f5528c568b..830a754554d5ee9d208de8697788281976f3b719 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,13 +3,20 @@ # SPDX-FileCopyrightText: (C) 2020, Jayesh Badwaik <jayesh@badwaik.dev> #--------------------------------------------------------------------------------------------------- +# We first run the correctness check and then run benchmarks +stages: + - Test + - Bench + - Doc + + # The following section includes the relevant yaml files for pulling in # appropriate templates and job lists based on the CI_SITE variable. include: # ------------------------------------------------- # Job Templates # ------------------------------------------------- - - local: .gitlab/template/unit_test.yml + - local: .gitlab/template/universal.yml - local: .gitlab/template/install.yml # ------------------------------------------------- diff --git a/.gitlab/mandatory/reuse.yml b/.gitlab/mandatory/reuse.yml index 4178741be1e0548b682f83ca023b2f7897cf0b5b..cff407c1d82894c8308c63dd5c0ccee346a8721a 100644 --- a/.gitlab/mandatory/reuse.yml +++ b/.gitlab/mandatory/reuse.yml @@ -5,6 +5,7 @@ reuse.lint: + stage: .post tags: ["docker"] image: name: fsfe/reuse diff --git a/.gitlab/mandatory/smoke.yml b/.gitlab/mandatory/smoke.yml index c6dc4b1084b28908fc698b341be5789d5dc06823..675135467ca1762bf442c4c065262c4eac762e27 100644 --- a/.gitlab/mandatory/smoke.yml +++ b/.gitlab/mandatory/smoke.yml @@ -7,6 +7,7 @@ # Gitlab supports executing pipelines from custom `.gitlab-ci.yml` # This test outputs the path to this file as a log for the pipeline. ci-smoke-test: + stage: .pre tags : ["docker"] script: - echo "Using /.gitlab-ci.yml" diff --git a/.gitlab/site/prod.jsc/main.yml b/.gitlab/site/prod.jsc/main.yml index 078ddcf9204e2e102a5a49ab7b446ffd0c09f5ab..79a4508a1949ab393f0702399011ebfae6719c2f 100644 --- a/.gitlab/site/prod.jsc/main.yml +++ b/.gitlab/site/prod.jsc/main.yml @@ -2,17 +2,18 @@ # SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: (C) 2023-2023, Jayesh Badwaik (FZ Juelich) <j.badwaik@fz-juelich.de> # -------------------------------------------------------------------------------------------------- -x64.cuda.12.unit_test.cuda.ci.job.debug.current.compat: +x64.cuda.12.universal.cuda.production.test.test.debug.current.compat: extends: - .platform.x64.cuda.12 - - .unit_test + - .universal image: nvcr.io/nvidia/cuda:12.0.0-devel-rockylinux8 + stage: Test tags: - docker - cuda variables: JOB_FEATURE: cuda - JOB_PRESET: ci.job.debug + JOB_PRESET: test.debug JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -22,18 +23,21 @@ x64.cuda.12.unit_test.cuda.ci.job.debug.current.compat: PLATFORM_NAME: x64.cuda.12 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.cuda.12.unit_test.cuda.ci.job.release.current.compat: +x64.cuda.12.universal.cuda.production.test.test.release.current.compat: extends: - .platform.x64.cuda.12 - - .unit_test + - .universal image: nvcr.io/nvidia/cuda:12.0.0-devel-rockylinux8 + stage: Test tags: - docker - cuda variables: JOB_FEATURE: cuda - JOB_PRESET: ci.job.release + JOB_PRESET: test.release JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -43,18 +47,21 @@ x64.cuda.12.unit_test.cuda.ci.job.release.current.compat: PLATFORM_NAME: x64.cuda.12 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.cuda.12.unit_test.none.ci.job.debug.current.compat: +x64.cuda.12.universal.none.production.test.test.debug.current.compat: extends: - .platform.x64.cuda.12 - - .unit_test + - .universal image: nvcr.io/nvidia/cuda:12.0.0-devel-rockylinux8 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.debug + JOB_PRESET: test.debug JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -64,18 +71,21 @@ x64.cuda.12.unit_test.none.ci.job.debug.current.compat: PLATFORM_NAME: x64.cuda.12 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.cuda.12.unit_test.none.ci.job.release.current.compat: +x64.cuda.12.universal.none.production.test.test.release.current.compat: extends: - .platform.x64.cuda.12 - - .unit_test + - .universal image: nvcr.io/nvidia/cuda:12.0.0-devel-rockylinux8 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.release + JOB_PRESET: test.release JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -85,12 +95,15 @@ x64.cuda.12.unit_test.none.ci.job.release.current.compat: PLATFORM_NAME: x64.cuda.12 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.gcc.12.install.none.package.current.install: +x64.gcc.12.install.none.package.production.test.current.install: extends: - .platform.x64.gcc.12 - .install image: registry.gitlab.com/cupstack/docker/gcc:12 + stage: Test tags: - docker - x64 @@ -107,18 +120,21 @@ x64.gcc.12.install.none.package.current.install: PLATFORM_NAME: x64.gcc.12 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.gcc.12.unit_test.none.ci.job.coverage.current.gcc: +x64.gcc.12.universal.none.test.coverage.production.test.current.gcc: extends: - .platform.x64.gcc.12 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/gcc:12 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.coverage + JOB_PRESET: test.coverage JOB_STANDARD: current JOB_SUBPROFILE: gcc PLATFORM_BUILD_DIR: /tmp/build @@ -129,18 +145,21 @@ x64.gcc.12.unit_test.none.ci.job.coverage.current.gcc: PLATFORM_NAME: x64.gcc.12 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.gcc.12.unit_test.none.ci.job.debug.current.compat: +x64.gcc.12.universal.none.test.debug.production.test.current.compat: extends: - .platform.x64.gcc.12 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/gcc:12 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.debug + JOB_PRESET: test.debug JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -151,18 +170,21 @@ x64.gcc.12.unit_test.none.ci.job.debug.current.compat: PLATFORM_NAME: x64.gcc.12 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.gcc.12.unit_test.none.ci.job.release.current.compat: +x64.gcc.12.universal.none.test.release.production.test.current.compat: extends: - .platform.x64.gcc.12 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/gcc:12 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.release + JOB_PRESET: test.release JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -173,12 +195,15 @@ x64.gcc.12.unit_test.none.ci.job.release.current.compat: PLATFORM_NAME: x64.gcc.12 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.install.none.package.current.install: +x64.llvm.15.install.none.package.production.test.current.install: extends: - .platform.x64.llvm.15 - .install image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 @@ -195,18 +220,21 @@ x64.llvm.15.install.none.package.current.install: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.unit_test.none.ci.job.asan.current.llvm: +x64.llvm.15.universal.none.production.test.test.asan.current.llvm: extends: - .platform.x64.llvm.15 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.asan + JOB_PRESET: test.asan JOB_STANDARD: current JOB_SUBPROFILE: llvm PLATFORM_BUILD_DIR: /tmp/build @@ -217,18 +245,21 @@ x64.llvm.15.unit_test.none.ci.job.asan.current.llvm: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.unit_test.none.ci.job.coverage.current.llvm: +x64.llvm.15.universal.none.production.test.test.coverage.current.llvm: extends: - .platform.x64.llvm.15 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.coverage + JOB_PRESET: test.coverage JOB_STANDARD: current JOB_SUBPROFILE: llvm PLATFORM_BUILD_DIR: /tmp/build @@ -239,20 +270,23 @@ x64.llvm.15.unit_test.none.ci.job.coverage.current.llvm: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.unit_test.none.ci.job.debug.current.compat: +x64.llvm.15.universal.none.production.test.test.format.current.llvm: extends: - .platform.x64.llvm.15 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.debug + JOB_PRESET: test.format JOB_STANDARD: current - JOB_SUBPROFILE: compat + JOB_SUBPROFILE: llvm PLATFORM_BUILD_DIR: /tmp/build PLATFORM_FORWARD_PARAMETERS: --input /tmp/input --output /tmp/output PLATFORM_INSTALL_DIR: /tmp/install @@ -261,18 +295,21 @@ x64.llvm.15.unit_test.none.ci.job.debug.current.compat: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.unit_test.none.ci.job.format.current.llvm: +x64.llvm.15.universal.none.production.test.test.linting.current.llvm: extends: - .platform.x64.llvm.15 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.format + JOB_PRESET: test.linting JOB_STANDARD: current JOB_SUBPROFILE: llvm PLATFORM_BUILD_DIR: /tmp/build @@ -283,18 +320,21 @@ x64.llvm.15.unit_test.none.ci.job.format.current.llvm: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.unit_test.none.ci.job.linting.current.llvm: +x64.llvm.15.universal.none.production.test.test.lsan.current.llvm: extends: - .platform.x64.llvm.15 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.linting + JOB_PRESET: test.lsan JOB_STANDARD: current JOB_SUBPROFILE: llvm PLATFORM_BUILD_DIR: /tmp/build @@ -305,18 +345,21 @@ x64.llvm.15.unit_test.none.ci.job.linting.current.llvm: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.unit_test.none.ci.job.lsan.current.llvm: +x64.llvm.15.universal.none.production.test.test.ubsan.current.llvm: extends: - .platform.x64.llvm.15 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.lsan + JOB_PRESET: test.ubsan JOB_STANDARD: current JOB_SUBPROFILE: llvm PLATFORM_BUILD_DIR: /tmp/build @@ -327,18 +370,21 @@ x64.llvm.15.unit_test.none.ci.job.lsan.current.llvm: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.unit_test.none.ci.job.release.current.compat: +x64.llvm.15.universal.none.test.debug.production.test.current.compat: extends: - .platform.x64.llvm.15 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.release + JOB_PRESET: test.debug JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -349,20 +395,23 @@ x64.llvm.15.unit_test.none.ci.job.release.current.compat: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.llvm.15.unit_test.none.ci.job.ubsan.current.llvm: +x64.llvm.15.universal.none.test.release.production.test.current.compat: extends: - .platform.x64.llvm.15 - - .unit_test + - .universal image: registry.gitlab.com/cupstack/docker/llvm:15 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.ubsan + JOB_PRESET: test.release JOB_STANDARD: current - JOB_SUBPROFILE: llvm + JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build PLATFORM_FORWARD_PARAMETERS: --input /tmp/input --output /tmp/output PLATFORM_INSTALL_DIR: /tmp/install @@ -371,18 +420,21 @@ x64.llvm.15.unit_test.none.ci.job.ubsan.current.llvm: PLATFORM_NAME: x64.llvm.15 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.nvhpc.23.unit_test.cuda.ci.job.debug.current.compat: +x64.nvhpc.23.universal.cuda.production.test.test.debug.current.compat: extends: - .platform.x64.nvhpc.23 - - .unit_test + - .universal image: nvcr.io/nvidia/nvhpc:23.1-devel-cuda12.0-rockylinux8 + stage: Test tags: - docker - cuda variables: JOB_FEATURE: cuda - JOB_PRESET: ci.job.debug + JOB_PRESET: test.debug JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -393,18 +445,71 @@ x64.nvhpc.23.unit_test.cuda.ci.job.debug.current.compat: PLATFORM_NAME: x64.nvhpc.23 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.nvhpc.23.unit_test.cuda.ci.job.release.current.compat: +x64.nvhpc.23.universal.cuda.production.test.test.release.current.compat: extends: - .platform.x64.nvhpc.23 - - .unit_test + - .universal image: nvcr.io/nvidia/nvhpc:23.1-devel-cuda12.0-rockylinux8 + stage: Test tags: - docker - cuda variables: JOB_FEATURE: cuda - JOB_PRESET: ci.job.release + JOB_PRESET: test.release + JOB_STANDARD: current + JOB_SUBPROFILE: compat + PLATFORM_BUILD_DIR: /tmp/build + PLATFORM_FORWARD_PARAMETERS: --input /tmp/input --output /tmp/output + PLATFORM_INSTALL_DIR: /tmp/install + PLATFORM_LAUNCHER: shell + PLATFORM_LAUNCHER_PARAM: '' + PLATFORM_NAME: x64.nvhpc.23 + PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake + PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test + +x64.nvhpc.23.universal.none.production.test.test.debug.current.compat: + extends: + - .platform.x64.nvhpc.23 + - .universal + image: nvcr.io/nvidia/nvhpc:23.1-devel-cuda12.0-rockylinux8 + stage: Test + tags: + - docker + - x64 + variables: + JOB_FEATURE: none + JOB_PRESET: test.debug + JOB_STANDARD: current + JOB_SUBPROFILE: compat + PLATFORM_BUILD_DIR: /tmp/build + PLATFORM_FORWARD_PARAMETERS: --input /tmp/input --output /tmp/output + PLATFORM_INSTALL_DIR: /tmp/install + PLATFORM_LAUNCHER: shell + PLATFORM_LAUNCHER_PARAM: '' + PLATFORM_NAME: x64.nvhpc.23 + PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake + PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test + +x64.nvhpc.23.universal.none.production.test.test.release.current.compat: + extends: + - .platform.x64.nvhpc.23 + - .universal + image: nvcr.io/nvidia/nvhpc:23.1-devel-cuda12.0-rockylinux8 + stage: Test + tags: + - docker + - x64 + variables: + JOB_FEATURE: none + JOB_PRESET: test.release JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -415,18 +520,21 @@ x64.nvhpc.23.unit_test.cuda.ci.job.release.current.compat: PLATFORM_NAME: x64.nvhpc.23 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.nvhpc.23.unit_test.none.ci.job.debug.current.compat: +x64.nvhpc.23.universal.none.test.debug.production.test.current.compat: extends: - .platform.x64.nvhpc.23 - - .unit_test + - .universal image: nvcr.io/nvidia/nvhpc:23.1-devel-cuda12.0-rockylinux8 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.debug + JOB_PRESET: test.debug JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -437,18 +545,21 @@ x64.nvhpc.23.unit_test.none.ci.job.debug.current.compat: PLATFORM_NAME: x64.nvhpc.23 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test -x64.nvhpc.23.unit_test.none.ci.job.release.current.compat: +x64.nvhpc.23.universal.none.test.release.production.test.current.compat: extends: - .platform.x64.nvhpc.23 - - .unit_test + - .universal image: nvcr.io/nvidia/nvhpc:23.1-devel-cuda12.0-rockylinux8 + stage: Test tags: - docker - x64 variables: JOB_FEATURE: none - JOB_PRESET: ci.job.release + JOB_PRESET: test.release JOB_STANDARD: current JOB_SUBPROFILE: compat PLATFORM_BUILD_DIR: /tmp/build @@ -459,3 +570,5 @@ x64.nvhpc.23.unit_test.none.ci.job.release.current.compat: PLATFORM_NAME: x64.nvhpc.23 PLATFORM_TOOLCHAIN_FILE: /tmp/pkgroot/srv/toolchain/cmake/toolchain.cmake PLATFORM_TOOLCHAIN_PKGROOT: /tmp/pkgroot + TEST_PRESET: production.test + stage: Test diff --git a/.gitlab/template/install.yml b/.gitlab/template/install.yml index 2e192804475b1f84bc16e27e08b7f4c670fe79aa..b54604bd092ae49b5c700c6fc4cb2217256adc03 100644 --- a/.gitlab/template/install.yml +++ b/.gitlab/template/install.yml @@ -46,7 +46,7 @@ - mkdir -p $PLATFORM_BUILD_DIR - | cmake -B $PLATFORM_BUILD_DIR -S . \ - -DBUILD_SOURCE=Off --preset ci.job.release --toolchain $PLATFORM_TOOLCHAIN_FILE + -DBUILD_SOURCE=Off --preset test.release --toolchain $PLATFORM_TOOLCHAIN_FILE - cmake --build $PLATFORM_BUILD_DIR - | tora-test \ @@ -54,7 +54,7 @@ --options "$PLATFORM_LAUNCHER_PARAM" \ --test-dir $PLATFORM_BUILD_DIR \ --passthrough '--input a --output b' \ - --label "test" + --preset "production.test" diff --git a/.gitlab/template/unit_test.yml b/.gitlab/template/universal.yml similarity index 89% rename from .gitlab/template/unit_test.yml rename to .gitlab/template/universal.yml index aee8a09a0eee318169254122d50e5cbee2662cc1..5c89ace92fb32517d11a059ca92933721ad2aa47 100644 --- a/.gitlab/template/unit_test.yml +++ b/.gitlab/template/universal.yml @@ -7,7 +7,7 @@ # The Universal Job Script # Requirement: #--------------------------------------------------------------------------------------------------- -.unit_test: +.universal: artifacts: when: on_failure paths: @@ -33,17 +33,17 @@ --options "$PLATFORM_LAUNCHER_PARAM" \ --test-dir $PLATFORM_BUILD_DIR \ --passthrough '--input a --output b' \ - --label "test" + --preset $TEST_PRESET - | - if [[ $JOB_PRESET == "ci.job.coverage" ]]; then + if [[ $JOB_PRESET == "test.coverage" ]]; then cmake --build $PLATFORM_BUILD_DIR --target diagnostic.coverage fi - | - if [[ $JOB_PRESET == "ci.job.linting" ]]; then + if [[ $JOB_PRESET == "test.linting" ]]; then cmake --build $PLATFORM_BUILD_DIR --target diagnostic.linting fi - | - if [[ $JOB_PRESET == "ci.job.format" ]]; then + if [[ $JOB_PRESET == "test.format" ]]; then cmake --build $PLATFORM_BUILD_DIR --target diagnostic.format fi diff --git a/CMakePresets.json b/CMakePresets.json index 988534c34ce0ec7d751bbfe0e8e9f8456272ff10..9ae0f0a95dd109a0ca7562d4c9a37f9de8a9ca3f 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -5,11 +5,17 @@ "minor": 25, "patch": 2 }, - "configurePresets": + "configurePresets" : [ + { + "name": "root", + "displayName": "Root Configure Preset" + }, { "name": "strict.std", "displayName": "Strict Standard Options", + "hidden": true, + "inherits": "root", "cacheVariables": { "CMAKE_CXX_STANDARD_REQUIRED": "ON", "CMAKE_C_STANDARD_REQUIRED": "ON", @@ -23,16 +29,15 @@ }, { "name": "package", - "displayName": "Preset Templates for CI Job", + "displayName": "Preset for Package", "inherits": "strict.std", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release", - "WARNING_AS_ERROR": "ON" + "CMAKE_BUILD_TYPE": "Release" } }, { - "name": "ci.job", - "displayName": "Preset Templates for CI Job", + "name": "test", + "displayName": "Templates for Test", "hidden": true, "inherits": "strict.std", "cacheVariables": { @@ -41,114 +46,95 @@ } }, { - "name": "ci.job.debug", - "displayName": "Debug Job for CI", - "description": "Debug Job for CI", - "inherits": "ci.job", + "name": "test.debug", + "displayName": "Debug", + "description": "Debug", + "inherits": "test", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } }, { - "name": "ci.job.release", - "displayName": "Release Job for CI", - "inherits": "ci.job", + "name": "test.release", + "displayName": "Release", + "inherits": "test", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" } }, { - "name": "ci.job.bench", - "displayName": "Benchmark Job for CI", - "inherits": "ci.job", - "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release", - "BUILD_BENCHMARKING": "On" - } - }, - { - "name": "ci.job.format", - "displayName": "Format Job for CI", - "inherits": "ci.job", + "name": "test.format", + "displayName": "Format Checker", + "inherits": "test", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "DIAGNOSTIC_FORMAT": "ON" } }, { - "name": "ci.job.asan", - "displayName": "Address Sanitizer Job for CI", - "inherits": "ci.job", + "name": "test.asan", + "displayName": "Address Sanitizer", + "inherits": "test", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "DIAGNOSTIC_ASAN": "ON" } }, { - "name": "ci.job.ubsan", - "displayName": "Undefined Sanitizer for CI", - "inherits": "ci.job", + "name": "test.ubsan", + "displayName": "Undefined Sanitizer", + "inherits": "test", "cacheVariables": { "DIAGNOSTIC_UBSAN": "ON" } }, { - "name": "ci.job.lsan", - "displayName": "Leak Sanitizer Job for CI", - "inherits": "ci.job", + "name": "test.lsan", + "displayName": "Leak Sanitizer", + "inherits": "test", "cacheVariables": { "DIAGNOSTIC_LSAN": "ON" } }, { - "name": "ci.job.linting", - "displayName": ":Linting Job for CI", - "inherits": "ci.job", + "name": "test.linting", + "displayName": ":Linter", + "inherits": "test", "cacheVariables": { "DIAGNOSTIC_LINTING": "ON" } }, { - "name": "ci.job.coverage", - "displayName": ":Coverage Job for CI", - "inherits": "ci.job", + "name": "test.coverage", + "displayName": "Code Coverage", + "inherits": "test", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "DIAGNOSTIC_COVERAGE": "ON" } }, { - "name": "ci.job.warning.everything", - "displayName": ":Coverage Job for Checking all Warnings", - "inherits": "ci.job", + "name": "test.warning.everything", + "displayName": "All Warnings Enabled", + "inherits": "test", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_BUILD_TYPE": "Release", "WARNING_MODE": "everything" } } - ], - "buildPresets": + "buildPresets" : [ { - "name": "default", - "configurePreset": "strict.std" + "name": "root", + "configurePreset": "root" } ], - "testPresets": [ - { - "name": "default", - "configurePreset": "strict.std", - "output": { - "outputOnFailure": true - }, - "execution": { - "noTestsAction": "error" - } - }, + "testPresets" : + [ { - "name": "smoke", - "configurePreset": "strict.std", + "name": "production.test", + "configurePreset": "root", "output": { "outputOnFailure": true }, @@ -156,7 +142,9 @@ "noTestsAction": "error" }, "filter": { - "label": "smoke_test" + "include" : { + "label": "production.test" + } } } ] diff --git a/bs/external.cmake b/bs/external.cmake index f3cb58afed2a0e8043c2614be9bfc535249d89a3..c4d8ee1a57c6a45d1fc737d82390faf861cf0e93 100644 --- a/bs/external.cmake +++ b/bs/external.cmake @@ -10,7 +10,7 @@ if(NOT BUILD_SOURCE) find_package(zell REQUIRED) endif() -find_package(Threads REQUIRED) +find_package(Threads REQUIRED QUIET) if(PROJECT_FEATURE_MPI) find_package(tora REQUIRED COMPONENTS mpi) diff --git a/dev/etc/gitlab/ci/site/prod.jsc/main/compat.json b/dev/etc/gitlab/ci/site/prod.jsc/main/compat.json index df6a607fba15a42b64469c4a2f04e985d8e17d8a..b25cb249940fd341a92b8ecd85db3a76c232f253 100644 --- a/dev/etc/gitlab/ci/site/prod.jsc/main/compat.json +++ b/dev/etc/gitlab/ci/site/prod.jsc/main/compat.json @@ -2,20 +2,24 @@ { "_comment": "Generic Compatibility Suite", "_product": { + "stage" : ["Test"], "platform": [ "x64.llvm.15", "x64.gcc.12", "x64.nvhpc.23" ], "template": [ - ".unit_test" + ".universal" ], "JOB_FEATURE": [ "none" ], "JOB_PRESET": [ - "ci.job.debug", - "ci.job.release" + "test.debug", + "test.release" + ], + "TEST_PRESET": [ + "production.test" ], "JOB_STANDARD": [ "current" @@ -25,20 +29,24 @@ { "_comment": "CUDA Compatibility Matrix", "_product": { + "stage" : ["Test"], "platform": [ "x64.cuda.12", "x64.nvhpc.23" ], "template": [ - ".unit_test" + ".universal" ], "JOB_FEATURE": [ "none", "cuda" ], + "TEST_PRESET": [ + "production.test" + ], "JOB_PRESET": [ - "ci.job.debug", - "ci.job.release" + "test.debug", + "test.release" ], "JOB_STANDARD": [ "current" diff --git a/dev/etc/gitlab/ci/site/prod.jsc/main/gcc.json b/dev/etc/gitlab/ci/site/prod.jsc/main/gcc.json index 0a2a383f40b8104dbdca2c3376909abca06e5e17..a43a10647be350994ab815af08096fd0189415c1 100644 --- a/dev/etc/gitlab/ci/site/prod.jsc/main/gcc.json +++ b/dev/etc/gitlab/ci/site/prod.jsc/main/gcc.json @@ -2,17 +2,21 @@ { "_comment": "GCC Specific Suite", "_product": { + "stage" : ["Test"], "platform": [ "x64.gcc.12" ], "template": [ - ".unit_test" + ".universal" ], "JOB_FEATURE": [ "none" ], "JOB_PRESET": [ - "ci.job.coverage" + "test.coverage" + ], + "TEST_PRESET": [ + "production.test" ], "JOB_STANDARD": [ "current" diff --git a/dev/etc/gitlab/ci/site/prod.jsc/main/install.json b/dev/etc/gitlab/ci/site/prod.jsc/main/install.json index 555fbe93a62d653f611cddf096896d03b62f18e3..9ff4b8e39dd659ab75b7d974b1f845d6dbc113cb 100644 --- a/dev/etc/gitlab/ci/site/prod.jsc/main/install.json +++ b/dev/etc/gitlab/ci/site/prod.jsc/main/install.json @@ -2,6 +2,7 @@ { "_comment": "Install Suite", "_product": { + "stage" : ["Test"], "platform": [ "x64.llvm.15", "x64.gcc.12" @@ -15,6 +16,9 @@ "JOB_PRESET": [ "package" ], + "TEST_PRESET": [ + "production.test" + ], "JOB_STANDARD": [ "current" ] diff --git a/dev/etc/gitlab/ci/site/prod.jsc/main/llvm.json b/dev/etc/gitlab/ci/site/prod.jsc/main/llvm.json index 3dac31db1f29f4753296f40e2a1d80f9b0d8c4fb..871c69c1f6942af09d75bcbd6e5c23d2350b1fe7 100644 --- a/dev/etc/gitlab/ci/site/prod.jsc/main/llvm.json +++ b/dev/etc/gitlab/ci/site/prod.jsc/main/llvm.json @@ -2,22 +2,26 @@ { "_comment": "LLVM Specific Suite", "_product": { + "stage" : ["Test"], "platform": [ "x64.llvm.15" ], "template": [ - ".unit_test" + ".universal" ], "JOB_FEATURE": [ "none" ], + "TEST_PRESET": [ + "production.test" + ], "JOB_PRESET": [ - "ci.job.asan", - "ci.job.coverage", - "ci.job.format", - "ci.job.linting", - "ci.job.lsan", - "ci.job.ubsan" + "test.asan", + "test.coverage", + "test.format", + "test.linting", + "test.lsan", + "test.ubsan" ], "JOB_STANDARD": [ "current" diff --git a/dev/lib/platform/x64.cuda.12.json b/dev/lib/platform/x64.cuda.12.json index d80794d6d02a04469eadc0d1ab9ed1da2a85b1f4..c3fd02af9c2afdc27cac69db49dd765373984d6c 100644 --- a/dev/lib/platform/x64.cuda.12.json +++ b/dev/lib/platform/x64.cuda.12.json @@ -4,23 +4,27 @@ "dimensions": [ "JOB_STANDARD", "JOB_PRESET", - "JOB_FEATURE" + "JOB_FEATURE", + "TEST_PRESET" ], "value": [ { "_product": { "JOB_PRESET": [ "package", - "ci.job.compile", - "ci.job.debug", - "ci.job.release", - "ci.job.coverage" + "test.compile", + "test.debug", + "test.release", + "test.coverage" ], "JOB_STANDARD": [ "past", "current", "future" ], + "TEST_PRESET": [ + "production.test" + ], "JOB_FEATURE": [ "none", "cuda" diff --git a/dev/lib/platform/x64.gcc.12.json b/dev/lib/platform/x64.gcc.12.json index 1cc00963e7935c5be27348329de63a6040667ad7..07413bf3e5fe29e479b701f898d8c9ab7e604071 100644 --- a/dev/lib/platform/x64.gcc.12.json +++ b/dev/lib/platform/x64.gcc.12.json @@ -4,23 +4,28 @@ "dimensions": [ "JOB_STANDARD", "JOB_PRESET", - "JOB_FEATURE" + "JOB_FEATURE", + "TEST_PRESET" + ], "value": [ { "_product": { "JOB_PRESET": [ "package", - "ci.job.compile", - "ci.job.debug", - "ci.job.release", - "ci.job.coverage" + "test.compile", + "test.debug", + "test.release", + "test.coverage" ], "JOB_STANDARD": [ "past", "current", "future" ], + "TEST_PRESET": [ + "production.test" + ], "JOB_FEATURE": [ "none" ] diff --git a/dev/lib/platform/x64.llvm.15.json b/dev/lib/platform/x64.llvm.15.json index 95fe7aac444319f349f701d10c79b07486d5fa3d..78e312944cb8501548ed303f34ab79fd8b2d9fbd 100644 --- a/dev/lib/platform/x64.llvm.15.json +++ b/dev/lib/platform/x64.llvm.15.json @@ -4,28 +4,33 @@ "dimensions": [ "JOB_STANDARD", "JOB_PRESET", - "JOB_FEATURE" + "JOB_FEATURE", + "TEST_PRESET" + ], "value": [ { "_product": { "JOB_PRESET": [ "package", - "ci.job.compile", - "ci.job.debug", - "ci.job.release", - "ci.job.format", - "ci.job.asan", - "ci.job.ubsan", - "ci.job.lsan", - "ci.job.linting", - "ci.job.coverage" + "test.compile", + "test.debug", + "test.release", + "test.format", + "test.asan", + "test.ubsan", + "test.lsan", + "test.linting", + "test.coverage" ], "JOB_STANDARD": [ "past", "current", "future" ], + "TEST_PRESET": [ + "production.test" + ], "JOB_FEATURE": [ "none" ] diff --git a/dev/lib/platform/x64.nvhpc.23.json b/dev/lib/platform/x64.nvhpc.23.json index 04aabbaca80b604530e2ee7af7d0990b94541278..0533964b56ec2216e371ce01c6fedeb85d8689a6 100644 --- a/dev/lib/platform/x64.nvhpc.23.json +++ b/dev/lib/platform/x64.nvhpc.23.json @@ -4,20 +4,25 @@ "dimensions": [ "JOB_STANDARD", "JOB_PRESET", - "JOB_FEATURE" + "JOB_FEATURE", + "TEST_PRESET" + ], "value": [ { "_product": { "JOB_PRESET": [ "package", - "ci.job.compile", - "ci.job.debug", - "ci.job.release" + "test.compile", + "test.debug", + "test.release" ], "JOB_STANDARD": [ "current" ], + "TEST_PRESET": [ + "production.test" + ], "JOB_FEATURE": [ "none", "cuda" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b8e321c520b91b6d1d1c1ed2e84e6025e2dc4aba..10ec5605c5c5d7accd5be7f4c44cf55244376921 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,44 +1,40 @@ -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- # SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: (C) 2021-2021, Jayesh Badwaik <j.badwaik@fz-juelich.de> -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- add_library(libtestzell) set_target_properties(libtestzell PROPERTIES OUTPUT_NAME testzell) target_link_libraries(libtestzell PUBLIC zell::libzell) -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- # Setting up the Test Framework -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- add_subdirectory(common) -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- # Add Compile Tests -# ------------------------------------------------------------------------------ -tora_surrogate_check(libtestzell) +# -------------------------------------------------------------------------------------------------- +tora_surrogate_check(libtestzell "surrogate_test,production.test") if(BUILD_SOURCE) - tora_surrogate_check(libzell) + tora_surrogate_check(libzell "surrogate_test,production.test") + add_subdirectory(compile) endif() -add_subdirectory(compile) - - - -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- # Adding Runtime Tests -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- add_subdirectory(smoke) add_subdirectory(unit) add_subdirectory(integration) -add_subdirectory(quality) add_subdirectory(acceptance) -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- # Resolving Dependencies -# ------------------------------------------------------------------------------ +# -------------------------------------------------------------------------------------------------- if(PROJECT_FEATURE_CUDA) target_link_libraries(libtestzell PUBLIC zell::cuda) endif() @@ -55,4 +51,3 @@ target_link_libraries(libtestzell PUBLIC zell::cxx) target_link_libraries(libtestzell PUBLIC zell::c) target_link_libraries(libtestzell PUBLIC Catch2::Catch2) - diff --git a/test/acceptance/CMakeLists.txt b/test/acceptance/CMakeLists.txt index 995b8ee2162e6d5f3c75f3c4746a0c71ae44155b..7d08e1da61e10627ac28b4e27c55ddde07a89f29 100644 --- a/test/acceptance/CMakeLists.txt +++ b/test/acceptance/CMakeLists.txt @@ -3,4 +3,3 @@ # SPDX-FileCopyrightText: (C) 2022 Jayesh Badwaik <j.badwaik@fz-juelich.de> # -------------------------------------------------------------------------------------------------- - diff --git a/test/compile/cpp/CMakeLists.txt b/test/compile/cpp/CMakeLists.txt index e0a6b57edcbd835b147079c29839f94545994fd7..e6fe1e8cb4cbfada97fdaf04a8c22f99a10e4b67 100644 --- a/test/compile/cpp/CMakeLists.txt +++ b/test/compile/cpp/CMakeLists.txt @@ -3,4 +3,4 @@ # SPDX-FileCopyrightText: (C) 2022 Jayesh Badwaik <j.badwaik@fz-juelich.de> # -------------------------------------------------------------------------------------------------- -add_compile_test_directory(mol libtestzell cpp unit_test) +add_compile_test_directory(mol libtestzell cpp "unit_test,production.test") diff --git a/test/smoke/cpp/CMakeLists.txt b/test/smoke/cpp/CMakeLists.txt index 27122d51dbd473eca7f513aec9b4e19c896f6e09..b802dd90596ba69d93160717031dc1b419129a61 100644 --- a/test/smoke/cpp/CMakeLists.txt +++ b/test/smoke/cpp/CMakeLists.txt @@ -5,12 +5,12 @@ add_executable(smoke.disabled.t disabled.t.cpp) add_test(smoke.disabled.t smoke.disabled.t) -set_property(TEST smoke.disabled.t PROPERTY LABELS smoke_test) +set_property(TEST smoke.disabled.t PROPERTY LABELS "smoke_test,production.test") target_link_libraries(smoke.disabled.t PRIVATE libtestzell) add_executable(smoke.thread.t thread.t.cpp) add_test(smoke.thread.t smoke.thread.t) -set_property(TEST smoke.thread.t PROPERTY LABELS smoke_test) +set_property(TEST smoke.thread.t PROPERTY LABELS "smoke_test,production.test") target_link_libraries(smoke.thread.t PRIVATE libtestzell) if(DIAGNOSTIC_ASAN) @@ -18,7 +18,7 @@ if(DIAGNOSTIC_ASAN) add_test(smoke.asan.t smoke.asan.t) target_link_libraries(smoke.asan.t PRIVATE tora::instrument.asan.cxx) set_tests_properties(smoke.asan.t PROPERTIES WILL_FAIL TRUE) - set_property(TEST smoke.asan.t PROPERTY LABELS smoke_test) + set_property(TEST smoke.asan.t PROPERTY LABELS "smoke_test,production.test") endif() @@ -27,7 +27,7 @@ if(DIAGNOSTIC_LSAN) add_test(smoke.lsan.t smoke.lsan.t) target_link_libraries(smoke.lsan.t PRIVATE libtestzell) set_tests_properties(smoke.lsan.t PROPERTIES WILL_FAIL TRUE) - set_property(TEST smoke.lsan.t PROPERTY LABELS smoke_test) + set_property(TEST smoke.lsan.t PROPERTY LABELS "smoke_test,production.test") endif() @@ -36,7 +36,7 @@ if(DIAGNOSTIC_UBSAN) add_test(smoke.ubsan.t smoke.ubsan.t) target_link_libraries(smoke.ubsan.t PRIVATE libtestzell) set_tests_properties(smoke.ubsan.t PROPERTIES WILL_FAIL TRUE) - set_property(TEST smoke.ubsan.t PROPERTY LABELS smoke_test) + set_property(TEST smoke.ubsan.t PROPERTY LABELS "smoke_test,production.test") endif() diff --git a/test/unit/cpp/CMakeLists.txt b/test/unit/cpp/CMakeLists.txt index ab2d7202cd174d1274ab0dc1a21498d49cee4a20..4c0acd3df0de43548751ed91769560201007cc62 100644 --- a/test/unit/cpp/CMakeLists.txt +++ b/test/unit/cpp/CMakeLists.txt @@ -3,6 +3,6 @@ # SPDX-FileCopyrightText: (C) 2022 Jayesh Badwaik <j.badwaik@fz-juelich.de> # -------------------------------------------------------------------------------------------------- -add_unit_test_directory(nola libtestzell cpp unit_test) -add_unit_test_directory(zell libtestzell cpp unit_test) -add_unit_test_directory(testzell libtestzell cpp unit_test) +add_unit_test_directory(nola libtestzell cpp "unit_test,production.test") +add_unit_test_directory(zell libtestzell cpp "unit_test,production.test") +add_unit_test_directory(testzell libtestzell cpp "unit_test,production.test")