From e55594d1a541d2e11e7d47e72bc57976c3c36ec3 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Thu, 20 Feb 2020 10:40:38 +0100
Subject: [PATCH] [ci] Use build job template.

---
 .gitlab-ci.yml                         |  3 ++-
 scripts/ci/{jobs => extends}/build.yml | 17 ++++++++---------
 scripts/ci/jobs/build-linux.yml        |  9 +++++++++
 scripts/ci/jobs/build-mac.yml          | 19 +++----------------
 scripts/ci/jobs/checks.yml             |  4 ++--
 5 files changed, 24 insertions(+), 28 deletions(-)
 rename scripts/ci/{jobs => extends}/build.yml (64%)
 create mode 100644 scripts/ci/jobs/build-linux.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 609d101e346..44c718e279b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,13 +12,14 @@ variables:
 
 include:
   # extends
+  - local: '/scripts/ci/extends/build.yml'
   - local: '/scripts/ci/extends/container-maker-setup.yml'
   - local: '/scripts/ci/extends/vs2019-environment.yml'
   - local: '/scripts/ci/extends/test-artifacts.yml'
   # jobs
   - local: '/scripts/ci/jobs/pre-commit.yml'
   - local: '/scripts/ci/jobs/build_image.yml'
-  - local: '/scripts/ci/jobs/build.yml'
+  - local: '/scripts/ci/jobs/build-linux.yml'
   - local: '/scripts/ci/jobs/build-docs.yml'
   - local: '/scripts/ci/jobs/build-win.yml'
   - local: '/scripts/ci/jobs/build-mac.yml'
diff --git a/scripts/ci/jobs/build.yml b/scripts/ci/extends/build.yml
similarity index 64%
rename from scripts/ci/jobs/build.yml
rename to scripts/ci/extends/build.yml
index 7255ae26da3..5017d2f18ab 100644
--- a/scripts/ci/jobs/build.yml
+++ b/scripts/ci/extends/build.yml
@@ -1,22 +1,21 @@
-build:
+.build_definition:
   stage: test
+  extends: .test-artifacts
+
   variables:
-    BUILD_DIR: "build"
     CCACHE_DIR: "$CI_PROJECT_DIR/.ccache"
-  image:
-    name: $CONTAINER_GCC_IMAGE
-  cache:
-    paths:
-      - .ccache
-  extends: .test-artifacts
 
   before_script:
     - mkdir -p $BUILD_DIR
     - cd $BUILD_DIR
 
   script:
-    - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF -DOGS_BUILD_PROCESSES=GroundwaterFlow
+    - cmake .. -G Ninja $CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DOGS_BUILD_PROCESSES=GroundwaterFlow
     - cmake --build . > >(tee make.output)
     - cmake --build . --target tests
     - cmake --build . --target ctest
     - cp Testing/**/Test.xml Tests/ctest.xml
+
+  cache:
+    paths:
+      - $CCACHE_DIR
diff --git a/scripts/ci/jobs/build-linux.yml b/scripts/ci/jobs/build-linux.yml
new file mode 100644
index 00000000000..a883c154193
--- /dev/null
+++ b/scripts/ci/jobs/build-linux.yml
@@ -0,0 +1,9 @@
+build linux:
+  extends: .build_definition
+
+  variables:
+    BUILD_DIR: "build"
+    CMAKE_ARGS: "-DOGS_USE_CONAN=OFF"
+
+  image:
+    name: $CONTAINER_GCC_IMAGE
diff --git a/scripts/ci/jobs/build-mac.yml b/scripts/ci/jobs/build-mac.yml
index c7f6683dd55..a6b7c80c154 100644
--- a/scripts/ci/jobs/build-mac.yml
+++ b/scripts/ci/jobs/build-mac.yml
@@ -1,22 +1,9 @@
 build mac:
-  stage: test
+  extends: .build_definition
+
   tags:
     - mac
+
   variables:
     BUILD_DIR: "build-mac"
     CCACHE_DIR: "$CI_PROJECT_DIR/.ccache"
-  cache:
-    paths:
-      - .ccache
-  extends: .test-artifacts
-
-  before_script:
-    - mkdir -p $BUILD_DIR
-    - cd $BUILD_DIR
-
-  script:
-    - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_BUILD_PROCESSES=GroundwaterFlow
-    - cmake --build . > >(tee make.output)
-    - cmake --build . --target tests
-    - cmake --build . --target ctest
-    - cp Testing/**/Test.xml Tests/ctest.xml
diff --git a/scripts/ci/jobs/checks.yml b/scripts/ci/jobs/checks.yml
index 92152a48a9f..cc33134319b 100644
--- a/scripts/ci/jobs/checks.yml
+++ b/scripts/ci/jobs/checks.yml
@@ -4,7 +4,7 @@ compiler warnings:
     GIT_STRATEGY: none
   allow_failure: true
   dependencies:
-    - build
+    - build linux
     - build win
     - build mac
   script:
@@ -25,7 +25,7 @@ ctest results:
   tags:
     - singularity
   dependencies:
-    - build
+    - build linux
     - build win
     - build mac
   script:
-- 
GitLab