From 8096443d2781de202ce6c7cb8ebc86a1b765b71b Mon Sep 17 00:00:00 2001
From: Paul Nizenkov
Date: Thu, 27 Jul 2023 10:48:09 +0000
Subject: [PATCH] Gitlab CI: Fixed duplicate template definition in
.gitlab-ci.yml, download of reggie as a separate job, removed old if clause
for DO_NIGHTLY, added a DSMC build job
---
.gitlab-ci.yml | 491 ++++++++++----------
docs/documentation/developerguide/reggie.md | 35 ++
2 files changed, 281 insertions(+), 245 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d5b2d761d..677f8802c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,11 +3,6 @@
# Load modules on new boltzplatz reggie
before_script:
- ulimit -s unlimited
- #- module purge
- #- module load cmake
- #- module load gcc/9.2.0
- #- module load openmpi/3.1.6/gcc/9.2.0
- #- module load hdf5/1.10.6/gcc/9.2.0/openmpi/3.1.6
- module list
- python3 -V || true
- python2 -V || true
@@ -49,215 +44,213 @@ stages:
- deploy
# ----------------------------------------------------------------------------------------------------------------------------------------------------
-# Templates
+# Templates ("hidden jobs")
+# 1. Set the tags and artifacts properties (same for every job)
+# 2. Extend parameters for the testing stages in general: allow failure and pull the cached reggie
+# 3. Extend parameters for specific testing stages: maxwell, poisson, poisson + PETSc, DSMC
+# 4. Extend parameters of each testing stage to the check-in, nightly and weekly testing
# ----------------------------------------------------------------------------------------------------------------------------------------------------
-.template: &defaults
- tags:
- - withmodules-concurrent
+# Default parameters for the build and testing stage
+.default_build_param: &default_build_param
+ tags: [withmodules-concurrent]
artifacts:
name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
expire_in: 1 day
when: on_failure
- paths:
- - build
- cache:
- key: "${CI_COMMIT_REF_SLUG}"
- paths:
- - build
- policy: pull
+# ----------------------------------------------------------------------------------------------------------------------------------------------------
+# Default parameters for the testing stage only (reusing the previous template)
+.default_param: &default_param
+ <<: *default_build_param
allow_failure: true
+
+.reggie_cache: ®gie_cache
+ key: "reggie"
+ paths: [reggie]
+ policy: pull
+# ----------------------------------------------------------------------------------------------------------------------------------------------------
+# Defaults for the standard maxwell tests (utilizing "extends" to merge the other "artifacts" options with the specific path)
+.defaults: &defaults
+ extends: .default_param
+ needs: [build]
+ artifacts:
+ paths: [build]
+ cache:
+ - *reggie_cache
+ - key: "${CI_COMMIT_REF_SLUG}"
+ paths: [build]
+ policy: pull
+
+.defaults_checkin: &defaults_checkin
+ <<: *defaults
rules:
- if: '$DO_CHECKIN'
- if: '$CI_PIPELINE_SOURCE == "push"'
-.template: &defaults_nightly
- tags:
- - withmodules-concurrent
- artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
- paths:
- - build
- cache:
- key: "${CI_COMMIT_REF_SLUG}"
- paths:
- - build
- policy: pull
- allow_failure: true
+.defaults_nightly: &defaults_nightly
+ <<: *defaults
rules:
- if: '$DO_NIGHTLY'
-.template: &defaults_weekly
- tags:
- - withmodules-concurrent
- artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
- paths:
- - build
- cache:
- key: "${CI_COMMIT_REF_SLUG}"
- paths:
- - build
- policy: pull
- allow_failure: true
+.defaults_weekly: &defaults_weekly
+ <<: *defaults
rules:
- if: '$DO_WEEKLY'
-
-.template: &defaults_maxwell
- tags:
- - withmodules-concurrent
+# ----------------------------------------------------------------------------------------------------------------------------------------------------
+# Defaults for other maxwell tests with PICLAS_DEBUG_MEMORY=ON
+.defaults_maxwell: &defaults_maxwell
+ extends: .default_param
+ needs: [build_maxwell]
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
- paths:
- - build_maxwell
+ paths: [build_maxwell]
cache:
- key: "${CI_COMMIT_REF_SLUG}-MAX"
- paths:
- - build_maxwell
- policy: pull
- allow_failure: true
+ - *reggie_cache
+ - key: "${CI_COMMIT_REF_SLUG}-MAX"
+ paths: [build_maxwell]
+ policy: pull
rules:
- if: '$DO_CHECKIN'
- if: '$CI_PIPELINE_SOURCE == "push"'
-.template: &defaults_poisson
- tags:
- - withmodules-concurrent
+# ----------------------------------------------------------------------------------------------------------------------------------------------------
+# Defaults for poisson tests
+.defaults_poisson: &defaults_poisson
+ extends: .default_param
+ needs: [build_poisson]
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
paths:
- build_poisson_release
- build_poisson_debug
cache:
- key: "${CI_COMMIT_REF_SLUG}-POI"
- paths:
- - build_poisson_release
- - build_poisson_debug
- policy: pull
- allow_failure: true
+ - *reggie_cache
+ - key: "${CI_COMMIT_REF_SLUG}-POI"
+ paths:
+ - build_poisson_release
+ - build_poisson_debug
+ policy: pull
+
+.defaults_poisson_checkin: &defaults_poisson_checkin
+ <<: *defaults_poisson
rules:
- if: '$DO_CHECKIN'
- if: '$CI_PIPELINE_SOURCE == "push"'
-.template: &defaults_poisson_petsc
- tags:
- - withmodules-concurrent
+.defaults_poisson_nightly: &defaults_poisson_nightly
+ <<: *defaults_poisson
+ rules:
+ - if: '$DO_NIGHTLY'
+
+# ----------------------------------------------------------------------------------------------------------------------------------------------------
+# Defaults for poisson + PETSC tests
+.defaults_poisson_petsc: &defaults_poisson_petsc
+ extends: .default_param
+ needs: [build_poisson_petsc]
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
paths:
- build_poisson_petsc_release
- build_poisson_petsc_debug
cache:
- key: "${CI_COMMIT_REF_SLUG}-POI-PETSC"
- paths:
- - build_poisson_petsc_release
- - build_poisson_petsc_debug
- policy: pull
- allow_failure: true
+ - *reggie_cache
+ - key: "${CI_COMMIT_REF_SLUG}-POI-PETSC"
+ paths:
+ - build_poisson_petsc_release
+ - build_poisson_petsc_debug
+ policy: pull
+
+.defaults_poisson_petsc_checkin: &defaults_poisson_petsc_checkin
+ <<: *defaults_poisson_petsc
rules:
- if: '$DO_CHECKIN'
- if: '$CI_PIPELINE_SOURCE == "push"'
-.template: &defaults_poisson_nightly
- tags:
- - withmodules-concurrent
- artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
- paths:
- - build_poisson_release
- - build_poisson_debug
- cache:
- key: "${CI_COMMIT_REF_SLUG}-POI"
- paths:
- - build_poisson_release
- - build_poisson_debug
- policy: pull
- allow_failure: true
+.defaults_poisson_petsc_nightly: &defaults_poisson_petsc_nightly
+ <<: *defaults_poisson_petsc
rules:
- if: '$DO_NIGHTLY'
-.template: &defaults_poisson_petsc_nightly
- tags:
- - withmodules-concurrent
+# ----------------------------------------------------------------------------------------------------------------------------------------------------
+# Defaults for DSMC tests
+.defaults_DSMC: &defaults_DSMC
+ extends: .default_param
+ needs: [build_DSMC]
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
paths:
- - build_poisson_petsc_release
- - build_poisson_petsc_debug
+ - build_DSMC_release
+ - build_DSMC_debug
+ - build_DSMC_N1
cache:
- key: "${CI_COMMIT_REF_SLUG}-POI-PETSC"
- paths:
- - build_poisson_petsc_release
- - build_poisson_petsc_debug
- policy: pull
- allow_failure: true
+ - *reggie_cache
+ - key: "${CI_COMMIT_REF_SLUG}-DSMC"
+ paths:
+ - build_DSMC_release
+ - build_DSMC_debug
+ - build_DSMC_N1
+ policy: pull
+
+.defaults_DSMC_checkin: &defaults_DSMC_checkin
+ <<: *defaults_DSMC
+ rules:
+ - if: '$DO_CHECKIN'
+ - if: '$CI_PIPELINE_SOURCE == "push"'
+
+.defaults_DSMC_nightly: &defaults_DSMC_nightly
+ <<: *defaults_DSMC
rules:
- if: '$DO_NIGHTLY'
+.defaults_DSMC_weekly: &defaults_DSMC_weekly
+ <<: *defaults_DSMC
+ rules:
+ - if: '$DO_WEEKLY'
+
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "build": Build on check-in
# ----------------------------------------------------------------------------------------------------------------------------------------------------
+
+reggie_download:
+ extends: .default_build_param
+ artifacts:
+ paths: [reggie]
+ cache:
+ key: "reggie"
+ paths: [reggie]
+ policy: push
+ stage: build
+ script:
+ - git clone git@piclas.boltzplatz.eu:reggie2.0/reggie2.0.git reggie
+
build:
- tags:
- - withmodules-concurrent
+ extends: .default_build_param
+ needs: [reggie_download]
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
- paths:
- - build
+ paths: [build]
cache:
key: "${CI_COMMIT_REF_SLUG}"
- paths:
- - build
+ paths: [build]
policy: push
stage: build
script:
- mkdir -p build ; cd build
- - git clone git@piclas.boltzplatz.eu:reggie2.0/reggie2.0.git reggie
#- cmake .. -DLIBS_BUILD_HDF5=OFF -DPICLAS_BUILD_POSTI=ON -DPOSTI_BUILD_SUPERB=ON -DPICLAS_READIN_CONSTANTS=ON ; $GENERATOR -j all
- cmake -GNinja .. -DLIBS_BUILD_HDF5=OFF -DPICLAS_BUILD_POSTI=ON -DPOSTI_BUILD_SUPERB=ON -DPICLAS_READIN_CONSTANTS=ON ; ninja -j0 all
build_maxwell:
- tags:
- - withmodules-concurrent
+ extends: .default_build_param
+ needs: [reggie_download]
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
- paths:
- - build_maxwell
+ paths: [build_maxwell]
cache:
key: "${CI_COMMIT_REF_SLUG}-MAX"
- paths:
- - build_maxwell
+ paths: [build_maxwell]
policy: push
stage: build
script:
- mkdir -p build_maxwell ; cd build_maxwell
- - git clone git@piclas.boltzplatz.eu:reggie2.0/reggie2.0.git reggie
- cmake .. -DPICLAS_DEBUG_MEMORY=ON -DPICLAS_PARTICLES=OFF -DLIBS_BUILD_HDF5=OFF -DPICLAS_READIN_CONSTANTS=ON ; $GENERATOR -j $NCORES all
build_poisson:
- tags:
- - withmodules-concurrent
+ extends: .default_build_param
+ needs: [reggie_download]
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
paths:
- build_poisson_release
- build_poisson_debug
@@ -270,20 +263,15 @@ build_poisson:
stage: build
script:
- mkdir -p build_poisson_release ; cd build_poisson_release
- - git clone git@piclas.boltzplatz.eu:reggie2.0/reggie2.0.git reggie
- cmake .. -DCMAKE_BUILD_TYPE=Release -DPICLAS_EQNSYSNAME=poisson -DPICLAS_CODE_ANALYZE=ON -DPICLAS_TIMEDISCMETHOD=RK3 -DLIBS_BUILD_HDF5=OFF ; $GENERATOR -j $NCORES all
- cd ..
- mkdir -p build_poisson_debug ; cd build_poisson_debug
- - cp -r ../build_poisson_release/reggie .
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DPICLAS_EQNSYSNAME=poisson -DPICLAS_CODE_ANALYZE=ON -DPICLAS_TIMEDISCMETHOD=RK3 -DLIBS_BUILD_HDF5=OFF ; $GENERATOR -j $NCORES all
build_poisson_petsc:
- tags:
- - withmodules-concurrent
+ extends: .default_build_param
+ needs: [reggie_download]
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
paths:
- build_poisson_petsc_release
- build_poisson_petsc_debug
@@ -296,16 +284,41 @@ build_poisson_petsc:
stage: build
script:
- mkdir -p build_poisson_petsc_release ; cd build_poisson_petsc_release
- - git clone git@piclas.boltzplatz.eu:reggie2.0/reggie2.0.git reggie
- cmake .. -DCMAKE_BUILD_TYPE=Release -DPICLAS_EQNSYSNAME=poisson -DPICLAS_PETSC=ON -DPICLAS_CODE_ANALYZE=ON -DPICLAS_TIMEDISCMETHOD=RK3 -DLIBS_BUILD_HDF5=OFF ; $GENERATOR -j $NCORES all
- cd ..
- mkdir -p build_poisson_petsc_debug ; cd build_poisson_petsc_debug
- - cp -r ../build_poisson_petsc_release/reggie .
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DPICLAS_EQNSYSNAME=poisson -DPICLAS_PETSC=ON -DPICLAS_CODE_ANALYZE=ON -DPICLAS_TIMEDISCMETHOD=RK3 -DLIBS_BUILD_HDF5=OFF ; $GENERATOR -j $NCORES all
+build_DSMC:
+ extends: .default_build_param
+ needs: [reggie_download]
+ artifacts:
+ paths:
+ - build_DSMC_release
+ - build_DSMC_debug
+ - build_DSMC_N1
+ cache:
+ key: "${CI_COMMIT_REF_SLUG}-DSMC"
+ paths:
+ - build_DSMC_release
+ - build_DSMC_debug
+ - build_DSMC_N1
+ policy: push
+ stage: build
+ script:
+ - mkdir -p build_DSMC_release ; cd build_DSMC_release
+ - cmake .. -DCMAKE_BUILD_TYPE=Release -DPICLAS_TIMEDISCMETHOD=DSMC -DLIBS_BUILD_HDF5=OFF ; $GENERATOR -j $NCORES all
+ - cd ..
+ - mkdir -p build_DSMC_debug ; cd build_DSMC_debug
+ - cmake .. -DCMAKE_BUILD_TYPE=Debug -DPICLAS_TIMEDISCMETHOD=DSMC -DLIBS_BUILD_HDF5=OFF ; $GENERATOR -j $NCORES all
+ - cd ..
+ - mkdir -p build_DSMC_N1 ; cd build_DSMC_N1
+ - cmake .. -DCMAKE_BUILD_TYPE=Release -DPICLAS_TIMEDISCMETHOD=DSMC -DLIBS_BUILD_HDF5=OFF -DPICLAS_POLYNOMIAL_DEGREE=1 ; $GENERATOR -j $NCORES all
+
build_hopr:
- tags:
- - withmodules-concurrent
+ extends: .default_build_param
+ artifacts:
+ paths: [hopr]
stage: build
script:
- git clone https://github.com/hopr-framework/hopr.git hopr;
@@ -323,13 +336,14 @@ build_hopr:
- if: '$DO_WEEKLY'
build_hopr_in_piclas:
- tags:
- - withmodules-concurrent
+ tags: [withmodules-concurrent]
+ needs: [reggie_download]
+ cache:
+ <<: *reggie_cache
stage: build
script:
- mkdir -p build_hopr_lib ; cd build_hopr_lib
- - git clone git@piclas.boltzplatz.eu:reggie2.0/reggie2.0.git reggie
- - python ./reggie/reggie.py ../regressioncheck/WEK_HOPR
+ - python ../reggie/reggie.py ../regressioncheck/WEK_HOPR
rules:
- if: '$DO_WEEKLY'
- if: '$DO_CORE_SPLIT'
@@ -338,8 +352,7 @@ build_hopr_in_piclas:
when: never
build_no_git:
- tags:
- - withmodules-concurrent
+ tags: [withmodules-concurrent]
stage: build
script:
- echo " Installing branch $CI_COMMIT_REF_NAME without git"
@@ -352,8 +365,7 @@ build_no_git:
- if: '$DO_WEEKLY'
build_no_git_libs:
- tags:
- - withmodules-concurrent
+ tags: [withmodules-concurrent]
stage: build
script:
- echo " Installing branch $CI_COMMIT_REF_NAME without git but with external libs"
@@ -372,41 +384,41 @@ build_no_git_libs:
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_checkin": Run most simple reggie with previous builds on check-in
# ----------------------------------------------------------------------------------------------------------------------------------------------------
-default:
- <<: *defaults
+run_basic:
+ <<: *defaults_checkin
stage: reggie_checkin
script:
- - cd build ; python ./reggie/reggie.py ../regressioncheck/run_basic/maxwell -e ./bin/piclas
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/run_basic/maxwell -e ./bin/piclas
maxwell:
<<: *defaults_maxwell
stage: reggie_checkin
script:
- - cd build_maxwell ; python ./reggie/reggie.py ../regressioncheck/CHE_maxwell/maxwell -e ./bin/piclas
+ - cd build_maxwell ; python ../reggie/reggie.py ../regressioncheck/CHE_maxwell/maxwell -e ./bin/piclas
poisson_release:
- <<: *defaults_poisson
+ <<: *defaults_poisson_checkin
stage: reggie_checkin
script:
- - cd build_poisson_release ; python ./reggie/reggie.py ../regressioncheck/CHE_poisson -e ./bin/piclas
+ - cd build_poisson_release ; python ../reggie/reggie.py ../regressioncheck/CHE_poisson -e ./bin/piclas
poisson_debug:
- <<: *defaults_poisson
+ <<: *defaults_poisson_checkin
stage: reggie_checkin
script:
- - cd build_poisson_debug ; python ./reggie/reggie.py ../regressioncheck/CHE_poisson -e ./bin/piclas
+ - cd build_poisson_debug ; python ../reggie/reggie.py ../regressioncheck/CHE_poisson -e ./bin/piclas
poisson_petsc_release:
- <<: *defaults_poisson_petsc
+ <<: *defaults_poisson_petsc_checkin
stage: reggie_checkin
script:
- - cd build_poisson_petsc_release ; python ./reggie/reggie.py ../regressioncheck/CHE_poisson -e ./bin/piclas
+ - cd build_poisson_petsc_release ; python ../reggie/reggie.py ../regressioncheck/CHE_poisson -e ./bin/piclas
poisson_petsc_debug:
- <<: *defaults_poisson_petsc
+ <<: *defaults_poisson_petsc_checkin
stage: reggie_checkin
script:
- - cd build_poisson_petsc_debug ; python ./reggie/reggie.py ../regressioncheck/CHE_poisson -e ./bin/piclas
+ - cd build_poisson_petsc_debug ; python ../reggie/reggie.py ../regressioncheck/CHE_poisson -e ./bin/piclas
# ----------------------------------------------------------------------------------------------------------------------------------------------------
@@ -415,35 +427,37 @@ poisson_petsc_debug:
# - feature_PIC_single_particle_PML : 4^3 cart box with a particle and 1 cell layer PMLs for all directions
# ----------------------------------------------------------------------------------------------------------------------------------------------------
CHE_PIC_maxwell_RK4:
- <<: *defaults
+ <<: *defaults_checkin
stage: reggie_feature_checkin
script:
- - cd build ; python ./reggie/reggie.py ../regressioncheck/CHE_PIC_maxwell_RK4 -e ./bin/piclas
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/CHE_PIC_maxwell_RK4 -e ./bin/piclas
# Commented out 07/12/2020 - to be fixed (this reggie fails due to bug in implicit particle tracking)
#CHE_PIC_maxwell_implicitBC:
- # <<: *defaults
+ # <<: *defaults_checkin
# stage: reggie_feature_checkin
# script:
- # - cd build ; python ./reggie/reggie.py ../regressioncheck/CHE_PIC_maxwell_implicitBC
+ # - cd build ; python ../reggie/reggie.py ../regressioncheck/CHE_PIC_maxwell_implicitBC
CHE_DSMC:
- <<: *defaults
+ <<: *defaults_DSMC_checkin
stage: reggie_feature_checkin
script:
- - cd build ; python ./reggie/reggie.py ../regressioncheck/CHE_DSMC
+ - cd build_DSMC_release ; python ../reggie/reggie.py ../regressioncheck/CHE_DSMC -e ./bin/piclas
+ - cd ..
+ - cd build_DSMC_N1 ; python ../reggie/reggie.py ../regressioncheck/CHE_DSMC -e ./bin/piclas
CHE_BGK:
- <<: *defaults
+ <<: *defaults_checkin
stage: reggie_feature_checkin
script:
- - cd build ; python ./reggie/reggie.py ../regressioncheck/CHE_BGK
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/CHE_BGK
CHE_FPFlow:
- <<: *defaults
+ <<: *defaults_checkin
stage: reggie_feature_checkin
script:
- - cd build ; python ./reggie/reggie.py ../regressioncheck/CHE_FPFlow
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/CHE_FPFlow
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_DSMC_nightly": Build and run chemistry examples on nightly (check reaction rates in RESERVOIR simulation)
@@ -452,46 +466,50 @@ NIG_Reservoir:
<<: *defaults_nightly
stage: reggie_DSMC_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build/ ; python ./reggie/reggie.py ../regressioncheck/NIG_Reservoir ; fi
+ - cd build/ ; python ../reggie/reggie.py ../regressioncheck/NIG_Reservoir
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_DSMC_nightly": Build and run tracking examples on nightly
# ----------------------------------------------------------------------------------------------------------------------------------------------------
NIG_Tracking:
- <<: *defaults_nightly
+ <<: *defaults_DSMC_nightly
stage: reggie_DSMC_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build/ ; python ./reggie/reggie.py ../regressioncheck/NIG_tracking_DSMC ; fi
+ - cd build_DSMC_debug/ ; python ../reggie/reggie.py ../regressioncheck/NIG_tracking_DSMC -e ./bin/piclas
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_DSMC_nightly": Build and run DSMC examples on nightly
# ----------------------------------------------------------------------------------------------------------------------------------------------------
NIG_DSMC:
- <<: *defaults_nightly
+ <<: *defaults_DSMC_nightly
stage: reggie_DSMC_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build/ ; python ./reggie/reggie.py ../regressioncheck/NIG_DSMC ; fi
+ - cd build_DSMC_release/ ; python ../reggie/reggie.py ../regressioncheck/NIG_DSMC -e bin/piclas
+ - cd ..
+ - cd build_DSMC_debug/ ; python ../reggie/reggie.py ../regressioncheck/NIG_DSMC -e bin/piclas
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_tools_nightly": Build and run superB and piclas2vtk examples on nightly
# ----------------------------------------------------------------------------------------------------------------------------------------------------
NIG_SuperB_piclas:
<<: *defaults_nightly
+ needs: [build]
stage: reggie_tools_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_SuperB -e ./bin/piclas ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_SuperB -e ./bin/piclas
NIG_SuperB_standalone:
<<: *defaults_nightly
+ needs: [build]
stage: reggie_tools_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_SuperB -e ./bin/superB ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_SuperB -e ./bin/superB
NIG_piclas2vtk:
<<: *defaults_nightly
stage: reggie_tools_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_piclas2vtk ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_piclas2vtk
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_bgk_nightly": Build and run BGK-Flow examples on nightly (CURRENTLY NO NIGHTLY TEST FOR BGK)
@@ -499,10 +517,9 @@ NIG_piclas2vtk:
# gnu_NIG_BGK-Flow:
# <<: *defaults_nightly
# stage: reggie_bgk_nightly
-# tags:
-# - withmodules-concurrent
+# tags: [withmodules-concurrent]
# script:
-# - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_BGK-Flow ; fi
+# - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_BGK-Flow
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_nightly": Build and run
@@ -520,98 +537,98 @@ NIG_dielectric:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_dielectric ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_dielectric
NIG_PIC_maxwell_RK4:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_maxwell_RK4/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_maxwell_RK4/
NIG_convtest_maxwell:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_convtest_maxwell ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_convtest_maxwell
NIG_convtest_t_maxwell:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_convtest_t_maxwell ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_convtest_t_maxwell
NIG_convtest_t_poisson:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_convtest_t_poisson ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_convtest_t_poisson
NIG_convtest_poisson:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_convtest_poisson ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_convtest_poisson
NIG_PIC_poisson_RK3:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_RK3/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_RK3/
NIG_PIC_poisson_Boris-Leapfrog:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/
NIG_PIC_poisson_Leapfrog:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_Leapfrog/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_Leapfrog/
# NIG_PIC_poisson_Leapfrog_not_working:
# <<: *defaults_nightly
# stage: reggie_nightly
# script:
- # - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_Leapfrog_not_working/ ; fi
+ # - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_Leapfrog_not_working/
# Crank-Nicolson (2nd order implicit) time integration
# NIG_PIC_poisson_powerdensity:
# <<: *defaults_nightly
# stage: reggie_nightly
# script:
- # - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_powerdensity/ ; fi
+ # - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_powerdensity/
NIG_poisson:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_poisson/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_poisson/
NIG_poisson_PETSC:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_poisson_PETSC/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_poisson_PETSC/
NIG_maxwell_RK4:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_maxwell_RK4/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_maxwell_RK4/
NIG_PIC_poisson_plasma_wave:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_plasma_wave/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_plasma_wave/
NIG_maxwell_dipole_dielectric:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_maxwell_dipole_dielectric/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_maxwell_dipole_dielectric/
# Commented out 07/12/2020 - to be fixed:
# this reggie has two examples:
@@ -621,68 +638,62 @@ NIG_maxwell_dipole_dielectric:
# <<: *defaults_nightly
# stage: reggie_nightly
# script:
- # - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_implicit04/ ; fi
+ # - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_implicit04/
NIG_LoadBalance:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_LoadBalance/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_LoadBalance/
NIG_code_analyze:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_code_analyze/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_code_analyze/
NIG_IntKind8:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_IntKind8/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_IntKind8/
NIG_PIC_Deposition:
<<: *defaults_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_PIC_Deposition/ ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_Deposition/
# Add surf model (SEE) 13% probabilty test case here
#feature_SurfaceModel:
# <<: *defaults_nightly
# stage: reggie_nightly
-# tags:
-# - withmodules-concurrent
# script:
-# - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_SurfaceModel/ ; fi
+# - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_SurfaceModel/
NIG_Photoionization_release:
<<: *defaults_poisson_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build_poisson_release ; fi
- - if [ -n "${DO_NIGHTLY}" ]; then python ./reggie/reggie.py ../regressioncheck/NIG_Photoionization -e ./bin/piclas ; fi
+ - cd build_poisson_release; python ../reggie/reggie.py ../regressioncheck/NIG_Photoionization -e ./bin/piclas
NIG_Photoionization_debug:
<<: *defaults_poisson_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build_poisson_debug ; fi
- - if [ -n "${DO_NIGHTLY}" ]; then python ./reggie/reggie.py ../regressioncheck/NIG_Photoionization -e ./bin/piclas ; fi
+ - cd build_poisson_debug; python ../reggie/reggie.py ../regressioncheck/NIG_Photoionization -e ./bin/piclas
NIG_Photoionization_petsc_release:
<<: *defaults_poisson_petsc_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build_poisson_petsc_release ; fi
- - if [ -n "${DO_NIGHTLY}" ]; then python ./reggie/reggie.py ../regressioncheck/NIG_Photoionization -e ./bin/piclas ; fi
+ - cd build_poisson_petsc_release; python ../reggie/reggie.py ../regressioncheck/NIG_Photoionization -e ./bin/piclas
NIG_Photoionization_petsc_debug:
<<: *defaults_poisson_petsc_nightly
stage: reggie_nightly
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build_poisson_petsc_debug ; fi
- - if [ -n "${DO_NIGHTLY}" ]; then python ./reggie/reggie.py ../regressioncheck/NIG_Photoionization -e ./bin/piclas ; fi
+ - cd build_poisson_petsc_debug; python ../reggie/reggie.py ../regressioncheck/NIG_Photoionization -e ./bin/piclas
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_nightly_build_all": Build and run
@@ -694,19 +705,19 @@ build_all:
<<: *defaults_nightly
stage: reggie_nightly_build_all
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/run_basic ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/run_basic
build_sanitize:
<<: *defaults_nightly
stage: reggie_nightly_build_all
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_sanitize ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_sanitize
build_math_tools:
<<: *defaults_nightly
stage: reggie_nightly_build_all
script:
- - if [ -n "${DO_NIGHTLY}" ]; then cd build ; python ./reggie/reggie.py ../regressioncheck/NIG_math_libs ; fi
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_math_libs
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "reggie_weekly": Build and run examples once a week
@@ -716,51 +727,44 @@ WEK_PIC_maxwell:
<<: *defaults_weekly
stage: reggie_weekly
script:
- - cd build
- - python ./reggie/reggie.py ../regressioncheck/WEK_PIC_maxwell
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/WEK_PIC_maxwell
WEK_PIC_poisson:
<<: *defaults_weekly
stage: reggie_weekly
script:
- - cd build
- - python ./reggie/reggie.py ../regressioncheck/WEK_PIC_poisson
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/WEK_PIC_poisson
WEK_DSMC:
- <<: *defaults_weekly
+ <<: *defaults_DSMC_weekly
stage: reggie_weekly
script:
- - cd build
- - python ./reggie/reggie.py ../regressioncheck/WEK_DSMC
+ - cd build_DSMC_release ; python ../reggie/reggie.py ../regressioncheck/WEK_DSMC -e bin/piclas
WEK_Reservoir:
<<: *defaults_weekly
stage: reggie_weekly
script:
- - cd build
- - python ./reggie/reggie.py ../regressioncheck/WEK_Reservoir
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/WEK_Reservoir
WEK_FPFlow:
<<: *defaults_weekly
stage: reggie_weekly
script:
- - cd build
- - python ./reggie/reggie.py ../regressioncheck/WEK_FPFlow
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/WEK_FPFlow
WEK_BGKFlow:
<<: *defaults_weekly
stage: reggie_weekly
script:
- - cd build
- - python ./reggie/reggie.py ../regressioncheck/WEK_BGKFlow
+ - cd build ; python ../reggie/reggie.py ../regressioncheck/WEK_BGKFlow
# ----------------------------------------------------------------------------------------------------------------------------------------------------
# Stage "documentation": Compile the userguide and developer guide
# ----------------------------------------------------------------------------------------------------------------------------------------------------
documentation:
+ extends: .default_build_param
stage: documentation
- tags:
- - withmodules-concurrent
script:
- cd docs/documentation
- python3 -m pip install --exists-action=w --no-cache-dir -r requirements.txt
@@ -773,9 +777,6 @@ documentation:
- ls -l
- ls -l piclas.pdf
artifacts:
- name: "${CI_PIPELINE_ID}-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
- expire_in: 1 day
- when: on_failure
paths:
- docs/documentation
diff --git a/docs/documentation/developerguide/reggie.md b/docs/documentation/developerguide/reggie.md
index a6fefd0ff..bba2b2565 100644
--- a/docs/documentation/developerguide/reggie.md
+++ b/docs/documentation/developerguide/reggie.md
@@ -23,6 +23,41 @@ of the different tests is given under https://github.com/piclas-framework/piclas
The automatic execution by *gitlab-runners* can be performed on any machine that is connected to the
internet and in the following section, the setup of such a machine is described
+## Local Testing of GitLab CI
+
+To locally test the GitLab CI (including a YAML verification), [gitlab-ci-local](https://github.com/firecow/gitlab-ci-local) can be used. An installation guide can be found here: [Link](https://github.com/firecow/gitlab-ci-local#linux-based-on-debian). After a successful installation, you can view the available parameters through
+```
+gitlab-ci-local --help
+```
+To view the stages for the default check-in pipeline, execute in the main folder of piclas:
+```
+gitlab-ci-local --list
+```
+To view all stages and tests:
+```
+gitlab-ci-local --list-all
+```
+To execute the check-in pipeline locally (ie. the jobs that were shown with the `--list` command), use
+```
+gitlab-ci-local --shell-isolation
+```
+to avoid errors due to parallel writing of the ctags.txt file. An alternative is to limit the concurrent execution to one job, which
+is analogous to the current configuration on the Gitlab Runner (requires gitlab-ci-local in version 4.42.0)
+```
+gitlab-ci-local --concurrency=1
+```
+It should be noted that currently the cache creation & utilization does not seem to represent the remote execution, meaning that some
+errors might only be recognized after a push to the remote. A specific job can be executed simply by reference its name, and to also
+consider the dependencies (ie. the `needs:`), the following command can be utilized to execute, for example the DSMC check-in job:
+```
+gitlab-ci-local --needs CHE_DSMC
+```
+Another useful option to check the resulting configuration file is
+```
+gitlab-ci-local --preview preview.yml
+```
+which gives the expanded version of utilized `extends:` and `<<:` templates.
+
## Regression Server *Gitlab Runner* Setup
In a first step, the required software packages for PICLas and Reggie2.0 are installed on a new
system. In a second step, the *gitlab-runner* program is installed and the setup of runner is