From 5704cf51b283537525aaba42f2159a727a65a8e1 Mon Sep 17 00:00:00 2001
From: Lukas Werner <lks.werner@fau.de>
Date: Mon, 31 May 2021 14:49:39 +0200
Subject: [PATCH] Added example gitlab-ci.yml for waLBerla

---
 example.gitlab-ci.yml | 99 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 99 insertions(+)
 create mode 100644 example.gitlab-ci.yml

diff --git a/example.gitlab-ci.yml b/example.gitlab-ci.yml
new file mode 100644
index 0000000..2492e23
--- /dev/null
+++ b/example.gitlab-ci.yml
@@ -0,0 +1,99 @@
+###############################################################################
+##                                                                           ##
+##    General settings                                                       ##
+##                                                                           ##
+###############################################################################
+variables:
+   AUTH_USER: yw25ynew
+
+stages:
+   - build
+   - test
+
+###############################################################################
+##                                                                           ##
+##    Build templates                                                        ##
+##                                                                           ##
+###############################################################################
+
+.build_template:
+   script:
+      - export NUM_CORES=$(nproc --all)
+      - export MAX_BUILD_CORES=$(( $(awk '( $1 == "MemTotal:" ) { print $2 }' /proc/meminfo) / ( 4 * 1024 * 1024  ) ))
+      - "[[ $MAX_BUILD_CORES -lt $NUM_CORES ]] && export NUM_BUILD_CORES=$MAX_BUILD_CORES || export NUM_BUILD_CORES=$NUM_CORES"
+      - $CXX --version
+      - cmake --version
+      - ccache --version
+      - mpirun --version
+      - python3 --version
+      - export CCACHE_BASEDIR=$CI_PROJECT_DIR
+      - mkdir $CI_PROJECT_DIR/build
+      - cd $CI_PROJECT_DIR/build
+      - if dpkg --compare-versions `ompi_info | head -2 | tail -1 | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` ge 1.10; then export MPIEXEC_PREFLAGS="--allow-run-as-root" ; fi
+      - cmake ..
+        -DWALBERLA_BUFFER_DEBUG=$WALBERLA_BUFFER_DEBUG
+        -DWALBERLA_BUILD_TESTS=ON
+        -DWALBERLA_BUILD_BENCHMARKS=ON
+        -DWALBERLA_BUILD_TUTORIALS=ON
+        -DWALBERLA_BUILD_TOOLS=ON
+        -DWALBERLA_BUILD_SHOWCASES=ON
+        -DWALBERLA_BUILD_WITH_MPI=$WALBERLA_BUILD_WITH_MPI
+        -DWALBERLA_BUILD_WITH_CUDA=$WALBERLA_BUILD_WITH_CUDA
+        -DWALBERLA_BUILD_WITH_PYTHON=$WALBERLA_BUILD_WITH_PYTHON
+        -DWALBERLA_BUILD_WITH_OPENMP=$WALBERLA_BUILD_WITH_OPENMP
+        -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DMPIEXEC_PREFLAGS=$MPIEXEC_PREFLAGS
+        -DWALBERLA_DOUBLE_ACCURACY=$WALBERLA_DOUBLE_ACCURACY
+        -DWARNING_ERROR=ON
+        -DWALBERLA_BUILD_WITH_METIS=$WALBERLA_BUILD_WITH_METIS
+        -DWALBERLA_BUILD_WITH_PARMETIS=$WALBERLA_BUILD_WITH_PARMETIS
+        -DWALBERLA_ENABLE_GUI=$WALBERLA_ENABLE_GUI
+        -DWALBERLA_BUILD_WITH_CODEGEN=$WALBERLA_BUILD_WITH_CODEGEN
+        -DWALBERLA_STL_BOUNDS_CHECKS=$WALBERLA_STL_BOUNDS_CHECKS
+      - cmake . -LA
+      - cd src/core
+      - make -j $NUM_BUILD_CORES -l $NUM_CORES
+   variables:
+      CTEST_EXCLUDE_LABELS: "longrun"
+      WALBERLA_BUILD_WITH_MPI: "ON"
+      WALBERLA_BUILD_WITH_OPENMP: "ON"
+      OMP_NUM_THREADS: "4"
+      OMP_WAIT_POLICY: "PASSIVE"
+      CMAKE_BUILD_TYPE: "Release"
+      WALBERLA_BUFFER_DEBUG: "OFF"
+      WALBERLA_DOUBLE_ACCURACY: "ON"
+      WALBERLA_BUILD_WITH_METIS: "ON"
+      WALBERLA_BUILD_WITH_PARMETIS: "ON"
+      WALBERLA_ENABLE_GUI: "OFF"
+   tags:
+      - i10staff22
+
+
+###############################################################################
+##                                                                           ##
+##    Linux builds                                                           ##
+##                                                                           ##
+###############################################################################
+
+gcc_9_mpionly:
+   extends: .build_template
+   stage: build
+   variables:
+      CTEST_EXCLUDE_LABELS: "longrun"
+      WALBERLA_BUILD_WITH_MPI: "ON"
+      WALBERLA_BUILD_WITH_OPENMP: "OFF"
+      WALBERLA_BUILD_WITH_METIS: "OFF"
+      WALBERLA_BUILD_WITH_PARMETIS: "OFF"   
+   tags:
+      - i10staff22
+
+test:
+   stage: test
+   script:
+      - export NUM_CORES=$(nproc --all)
+      - cd $CI_PROJECT_DIR/build/tests/core
+      - ctest -LE $CTEST_EXCLUDE_LABELS -C $CMAKE_BUILD_TYPE --output-on-failure -j $NUM_CORES -T Test
+   variables:
+      CTEST_EXCLUDE_LABELS: "longrun"
+      CMAKE_BUILD_TYPE: "Release"
+   tags:
+      - i10staff22
-- 
GitLab