IAP GITLAB

Skip to content
Snippets Groups Projects
Commit d8c9088e authored by Ralf Ulrich's avatar Ralf Ulrich
Browse files

Merge branch 'ci_update' into 'master'

use of rules

See merge request AirShowerPhysics/corsika!214
parents edfcf5cb b999da72
No related branches found
No related tags found
1 merge request!214use of rules
Pipeline #1554 passed
variables:
GIT_SSL_NO_VERIFY: "1"
GIT_DEPTH: 10
## Runtime options for sanitizers
# (detect_leaks=0 because leak detection doesn't work in CI, but you can
# try to test with leak detection locally by using detect_leaks=1)
......@@ -9,47 +10,18 @@ variables:
# normal multi-step pipeline for each commit
stages:
- config
- quality
- config
- build
- test
- example
- install
- optional
# job/stage to just prepare cmake
config-u-18_04:
image: corsika/devel:u-18.04
stage: config
tags:
- corsika
variables:
CORSIKA_DATA: "${CI_PROJECT_DIR}/corsika-data/"
script:
- mkdir build
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DWITH_PYTHIA=ON
artifacts:
expire_in: 1 day
paths:
- build
# job/stage to just prepare cmake
config-clang-8:
image: corsika/devel:clang-8
stage: config
tags:
- corsika
variables:
CORSIKA_DATA: "${CI_BUILDS_DIR}/AirShowerPhysics/corsika/corsika-data/"
script:
- mkdir build
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DWITH_PYTHIA=ON
artifacts:
expire_in: 1 day
paths:
- build
####### CODE QUALITY CHECK ##############
##########################################################
check-copyrights:
image: corsika/devel:u-18.04
stage: quality
......@@ -57,7 +29,13 @@ check-copyrights:
- corsika
script:
- ./do-copyright.py
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
allow_failure: true
##########################################################
check-clang-format:
image: corsika/devel:u-18.04
before_script:
......@@ -67,30 +45,60 @@ check-clang-format:
- corsika
script:
- ./do-clang-format.py --all
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
allow_failure: true
# normal pipeline for each commit
build-u-18_04:
image: corsika/devel:u-18.04
dependencies:
- config-u-18_04
stage: build
####### CONFIG ##############
##########################################################
# the generic config template job
# job/stage to just prepare cmake
.config:
stage: config
tags:
- corsika
variables:
CORSIKA_DATA: "${CI_PROJECT_DIR}/corsika-data/"
script:
- mkdir build
- cd build
- cmake --build . -- -j4
artifacts:
expire_in: 1 hour
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DWITH_PYTHIA=ON
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
cache:
paths:
- build
- build/
policy: pull-push
# normal pipeline for each commit
build-clang-8:
# config for gcc
config-u-18_04:
extends: .config
image: corsika/devel:u-18.04
cache:
key: "${CI_COMMIT_REF_SLUG}-gcc"
# config for clang
config-clang-8:
extends: .config
image: corsika/devel:clang-8
dependencies:
- config-clang-8
cache:
key: "${CI_COMMIT_REF_SLUG}-clang"
####### BUILD ##############
##########################################################
# the generic build template job
# normal pipeline for each commit
.build:
stage: build
tags:
- corsika
......@@ -99,41 +107,40 @@ build-clang-8:
script:
- cd build
- cmake --build . -- -j4
artifacts:
expire_in: 1 hour
reports:
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
cache:
paths:
- build
- build/
policy: pull-push
# normal pipeline for each commit
test-u-18_04:
# build for gcc
build-u-18_04:
extends: .build
image: corsika/devel:u-18.04
dependencies:
- build-u-18_04
stage: test
tags:
- corsika
variables:
CORSIKA_DATA: "${CI_PROJECT_DIR}/corsika-data/"
script:
- git clone https://gitlab.ikp.kit.edu/AirShowerPhysics/corsika-data.git
- cd build
- set -o pipefail
- ctest -VV | gzip -v -9 > test.log.gz
artifacts:
when: always
expire_in: 1 week
reports:
junit:
- build/test_outputs/junit*.xml
paths:
- build/test.log.gz
- config-u-18_04
cache:
key: "${CI_COMMIT_REF_SLUG}-gcc"
# normal pipeline for each commit
test-clang-8:
# build for clang
build-clang-8:
extends: .build
image: corsika/devel:clang-8
dependencies:
- build-clang-8
- config-clang-8
cache:
key: "${CI_COMMIT_REF_SLUG}-clang"
####### TEST ##############
##########################################################
# generic test template job
# normal pipeline for each commit
.test:
stage: test
tags:
- corsika
......@@ -144,20 +151,49 @@ test-clang-8:
- cd build
- set -o pipefail
- ctest -VV | gzip -v -9 > test.log.gz
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
artifacts:
when: always
expire_in: 1 week
expire_in: 3 days
reports:
junit:
- build/test_outputs/junit*.xml
paths:
- build/test.log.gz
cache:
paths:
- build/
policy: pull
# normal pipeline for each commit
example-u-18_04:
# test for gcc
test-u-18_04:
extends: .test
image: corsika/devel:u-18.04
dependencies:
- build-u-18_04
cache:
key: "${CI_COMMIT_REF_SLUG}-gcc"
# test for clang
test-clang-8:
extends: .test
image: corsika/devel:clang-8
dependencies:
- build-clang-8
cache:
key: "${CI_COMMIT_REF_SLUG}-clang"
####### EXAMPLE ##############
##########################################################
# generic example template job
# normal pipeline for each commit
.example:
stage: example
tags:
- corsika
......@@ -168,38 +204,89 @@ example-u-18_04:
- cd build
- set -o pipefail
- make run_examples | gzip -v -9 > examples.log.gz
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
artifacts:
when: always
expire_in: 1 week
expire_in: 3 days
paths:
- build/examples.log.gz
cache:
paths:
- build/
policy: pull
# normal pipeline for each commit
example-clang-8:
# example for gcc
example-u-18_04:
extends: .example
image: corsika/devel:u-18.04
dependencies:
- build-u-18_04
cache:
key: "${CI_COMMIT_REF_SLUG}-gcc"
# example for clang
example-clang-8:
extends: .example
image: corsika/devel:clang-8
dependencies:
- build-clang-8
stage: example
cache:
key: "${CI_COMMIT_REF_SLUG}-clang"
####### INSTALL ##############
##########################################################
# generic install template job
# make install
.install:
stage: install
tags:
- corsika
variables:
CORSIKA_DATA: "${CI_PROJECT_DIR}/corsika-data/"
script:
- git clone https://gitlab.ikp.kit.edu/AirShowerPhysics/corsika-data.git
- cd build
- set -o pipefail
- make run_examples | gzip -v -9 > examples.log.gz
artifacts:
when: always
expire_in: 1 week
- make install
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
cache:
paths:
- build/examples.log.gz
- build/
policy: pull
# optional release pipeline for each commit
release-full-u-18_04:
# install for gcc
install-u-18_04:
extends: .install
image: corsika/devel:u-18.04
dependencies:
- config-u-18_04
- build-u-18_04
cache:
key: "${CI_COMMIT_REF_SLUG}-gcc"
# install for clang
install-clang-8:
extends: .install
image: corsika/devel:clang-8
dependencies:
- build-clang-8
cache:
key: "${CI_COMMIT_REF_SLUG}-clang"
####### OPTIONAL ##############
##########################################################
# generic release template job
# optional release pipeline for each commit
.release:
stage: optional
tags:
- corsika
......@@ -213,46 +300,52 @@ release-full-u-18_04:
- set -o pipefail
- ctest -VV | gzip -v -9 > test.log.gz
- make run_examples
rules:
- if: '$CI_MERGE_REQUEST_LABELS =~ /Ready for code review/' # run on merge requests, if label 'Ready for code review' is set
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: manual
allow_failure: true
- if: $CI_MERGE_REQUEST_ID
when: manual
allow_failure: true
- if: $CI_COMMIT_TAG
when: manual
allow_failure: true
cache:
paths:
- build/
policy: pull
artifacts:
when: always
expire_in: 1 week
expire_in: 3 days
reports:
junit:
- build/test_outputs/junit*.xml
paths:
- build/test.log.gz
when: manual
# optional release pipeline for each commit
# release for gcc
release-full-u-18_04:
extends: .release
image: corsika/devel:u-18.04
dependencies:
- config-u-18_04
cache:
key: "${CI_COMMIT_REF_SLUG}-gcc"
# release for clang
release-full-clang-8:
extends: .release
image: corsika/devel:clang-8
dependencies:
- config-clang-8
stage: optional
tags:
- corsika
variables:
CORSIKA_DATA: "${CI_PROJECT_DIR}/corsika-data/"
script:
- git clone https://gitlab.ikp.kit.edu/AirShowerPhysics/corsika-data.git
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release
- cmake --build . -- -j4
- set -o pipefail
- ctest -VV | gzip -v -9 > test.log.gz
- make run_examples
artifacts:
when: always
expire_in: 1 week
reports:
junit:
- build/test_outputs/junit*.xml
paths:
- build/test.log.gz
when: manual
cache:
key: "${CI_COMMIT_REF_SLUG}-clang"
# the coverage generation should either run when manually requested, OR for all changes on the master
.coverage_job: &coverage_job
##########################################################
# the coverage generation should either run when manually requested, OR always on the master
coverage:
image: corsika/devel:u-18.04
dependencies:
- config-u-18_04
......@@ -269,24 +362,27 @@ release-full-clang-8:
- cmake --build . --target coverage
- tar czf coverage-report.tar.gz coverage-report
coverage: '/^.*functions\.+:\s(.*\%)\s/'
rules:
- if: '$CI_MERGE_REQUEST_LABELS =~ /Ready for code review/' # run on merge requests, if label 'Ready for code review' is set
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_MERGE_REQUEST_ID
when: manual
allow_failure: true
- if: $CI_COMMIT_TAG
when: manual
allow_failure: true
artifacts:
expire_in: 1 year
paths:
- build/coverage-report.tar.gz
cache:
paths:
- build/
policy: pull
key: "${CI_COMMIT_REF_SLUG}-gcc"
coverage: # special manual job to run after normal pipeline on branch finished
<<: *coverage_job
when: manual
except:
refs:
- master
coverage_master: # special job to run on master banch changes
<<: *coverage_job
only:
refs:
- master
##########################################################
documentation:
image: corsika/devel:u-18.04
dependencies:
......@@ -302,13 +398,29 @@ documentation:
- mkdir .public
- cp -r Documentation/Doxygen/html .public/
- mv .public ../public
rules:
- if: '$CI_MERGE_REQUEST_LABELS =~ /Ready for code review/' # run on merge requests, if label 'Ready for code review' is set
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: manual
allow_failure: true
- if: $CI_MERGE_REQUEST_ID
when: manual
allow_failure: true
- if: $CI_COMMIT_TAG
when: manual
allow_failure: true
artifacts:
expire_in: 3 weeks
paths:
- public
when: manual
allow_failure: true
cache:
paths:
- build/
policy: pull
key: "${CI_COMMIT_REF_SLUG}-gcc"
##########################################################
sanity:
image: corsika/devel:u-18.04
dependencies:
......@@ -322,6 +434,19 @@ sanity:
- cd build
- cmake .. -DWITH_CORSIKA_SANITIZERS_ENABLED=ON
- cmake --build . -- -j4
when: manual
allow_failure: true
rules:
- if: '$CI_MERGE_REQUEST_LABELS =~ /Ready for code review/' # run on merge requests, if label 'Ready for code review' is set
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: manual
allow_failure: true
- if: $CI_MERGE_REQUEST_ID
when: manual
allow_failure: true
- if: $CI_COMMIT_TAG
when: manual
allow_failure: true
cache:
paths:
- build/
policy: pull
key: "${CI_COMMIT_REF_SLUG}-gcc"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment