Consolidate .use-clangX CI job mix-in.
authorM. Eric Irrgang <ericirrgang@gmail.com>
Fri, 20 Mar 2020 13:40:16 +0000 (16:40 +0300)
committerPaul Bauer <paul.bauer.q@gmail.com>
Mon, 23 Mar 2020 09:46:50 +0000 (10:46 +0100)
* Merge .build-clang-template and .clang-before-script-template into
  .use-clang:base
* Replace .clangX-template with .use-clangX, intended to provide
  everything needed for a gccX build environment.

Change-Id: I5b78cddb47befd2dceb68c144cf427906aeeac36

admin/gitlab-ci/global.gitlab-ci.yml
admin/gitlab-ci/lint.gitlab-ci.yml
admin/gitlab-ci/testing-matrix.gitlab-ci.yml

index cb7929e40de31ffc3421c118f35d594046f344e5..e39c0d994a440b21a650405c02613e4247f32059 100644 (file)
     CUDA_BASE_VERSION: "10.2"
     COMPILER_MAJOR_VERSION: 8
 
-.clang6-template:
-  image: gromacs/ci-clang-6:master
-
-.clang6-gmxapi-template:
-  image: gromacs/ci-clang-6-gmxapi:master
-
-.clang7-template:
-  image: gromacs/ci-clang-7:master
-
-.clang7-gmxapi-template:
-  image: gromacs/ci-clang-7-gmxapi:master
-
-.clang8-template:
-  image: gromacs/ci-clang-8:master
-
-.clang8-gmxapi-template:
-  image: gromacs/ci-clang-8-gmxapi:master
-
-.clang-before-script-template:
+# Base definition, not to be used directly.
+# Use version-specific `.use-clangX` definitions when defining jobs.
+.use-clang:base:
   variables:
-    COMPILER_MAJOR_VERSION: 7
-    EXTRA_INSTALLS: ""
-
+    DEBIAN_FRONTEND: noninteractive
+    BUILD_DIR: build-clang
+    CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=clang-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=clang++-$COMPILER_MAJOR_VERSION
   before_script:
     - echo $EXTRA_INSTALLS
     - time apt-get -qq update
     - export CCACHE_BASEDIR=${PWD}
     - export CCACHE_DIR=${PWD}/ccache
 
-.build-clang-template:
+.use-clang6:
+  image: gromacs/ci-clang-6:master
+  variables:
+    COMPILER_MAJOR_VERSION: 6
+  extends:
+    - .use-clang:base
+
+.use-clang7:
+  image: gromacs/ci-clang-7:master
   variables:
-    DEBIAN_FRONTEND: noninteractive
     COMPILER_MAJOR_VERSION: 7
-    BUILD_DIR: build-clang
-    CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=clang-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=clang++-$COMPILER_MAJOR_VERSION
+  extends:
+    - .use-clang:base
 
+.use-clang8:
+  image: gromacs/ci-clang-8:master
+  variables:
+    COMPILER_MAJOR_VERSION: 8
+  extends:
+    - .use-clang:base
index 348ad79ca121bd047a9ddbf91d6a92466df64cf1..8e5a836e546fe7e182ec2bae84ddbdcdadf593a7 100644 (file)
@@ -3,13 +3,12 @@
 configure-clang-tidy:
   extends:
     - .configure-clang
-    - .clang7-template
+    - .use-clang7
   needs:
     - job: simple-build
       artifacts: false
   variables:
     BUILD_DIR: build-clang-tidy
-    COMPILER_MAJOR_VERSION: 7
     CMAKE_EXTRA_OPTIONS: -DCLANG_TIDY=clang-tidy-$COMPILER_MAJOR_VERSION -DGMX_CLANG_TIDY=ON -DGMX_COMPILER_WARNINGS=ON
     EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION
   except:
@@ -19,7 +18,7 @@ configure-clang-tidy:
 build-clang-tidy:
   extends:
     - .build-clang
-    - .clang7-template
+    - .use-clang7
   stage: source-check
   needs:
     - job: simple-build
@@ -28,7 +27,6 @@ build-clang-tidy:
       artifacts: true
   variables:
     BUILD_DIR: build-clang-tidy
-    COMPILER_MAJOR_VERSION: 7
     EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION
   except:
     variables:
@@ -38,9 +36,7 @@ run-clang-format:
   extends:
     - .binary-build-template
     - .variables:default
-    - .clang-before-script-template
-    - .build-clang-template
-    - .clang7-template
+    - .use-clang7
   cache: {}
   stage: source-check
   when: always
@@ -51,7 +47,6 @@ run-clang-format:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
     KUBERNETES_MEMORY_LIMIT: 2Gi
-    COMPILER_MAJOR_VERSION: 7
     EXTRA_INSTALLS: clang-format-$COMPILER_MAJOR_VERSION
   except:
     variables:
@@ -71,9 +66,7 @@ run-copyright-check:
   extends:
     - .binary-build-template
     - .variables:default
-    - .clang-before-script-template
-    - .build-clang-template
-    - .clang7-template
+    - .use-clang7
   cache: {}
   stage: source-check
   when: always
@@ -119,7 +112,6 @@ run-check-source:
     KUBERNETES_CPU_REQUEST: 1
     KUBERNETES_MEMORY_LIMIT: 2Gi
     BUILD_DIR: build-docs
-    COMPILER_MAJOR_VERSION: 7
   except:
     variables:
       - $GROMACS_RELEASE
index 38e757f9fd557e560eebe97e03c41a514a24f049..6876e9b9109b522a6b60cda8f4e4e92abea32e96 100644 (file)
@@ -409,14 +409,10 @@ configure-gcc-8-cuda-10.2:
 .configure-clang:
   extends:
     - .configure-extends-template
-    - .clang-before-script-template
-    - .build-clang-template
 
 .configure-clang-release:
   extends:
     - .configure-release-extends-template
-    - .clang-before-script-template
-    - .build-clang-template
 
 # For version of clang before 7, we need to always provide the full version
 # Use something like this instead in the download script:
@@ -424,7 +420,7 @@ configure-gcc-8-cuda-10.2:
 configure-clang-6:
   extends:
     - .configure-clang
-    - .clang6-template
+    - .use-clang6
   needs:
     - job: simple-build
       artifacts: false
@@ -438,12 +434,10 @@ configure-clang-6:
 configure-clang-7:
   extends:
     - .configure-clang
-    - .clang7-template
+    - .use-clang7
   needs:
     - job: simple-build
       artifacts: false
-  variables:
-    COMPILER_MAJOR_VERSION: 7
   except:
     variables:
       - $GROMACS_RELEASE
@@ -451,10 +445,9 @@ configure-clang-7:
 configure-clang-7-release:
   extends:
     - .configure-clang-release
-    - .clang7-template
+    - .use-clang7
   cache: {}
   variables:
-    COMPILER_MAJOR_VERSION: 7
     RELEASE_BUILD_DIR: release-builds-clang
   only:
     refs:
@@ -472,12 +465,10 @@ configure-clang-7-gmxapi:
   extends:
     - .configure-clang
     - .configure-gmxapi-template
-    - .clang7-template
+    - .use-clang7
   needs:
     - job: simple-build
       artifacts: false
-  variables:
-    COMPILER_MAJOR_VERSION: 7
   except:
     variables:
       - $GROMACS_RELEASE
@@ -486,10 +477,9 @@ configure-clang-7-gmxapi-release:
   extends:
     - .configure-clang-release
     - .configure-gmxapi-template
-    - .clang7-template
+    - .use-clang7
   cache: {}
   variables:
-    COMPILER_MAJOR_VERSION: 7
     RELEASE_BUILD_DIR: release-builds-clang
   only:
     refs:
@@ -506,12 +496,10 @@ configure-clang-7-gmxapi-release:
 configure-clang-8:
   extends:
     - .configure-clang
-    - .clang8-template
+    - .use-clang8
   needs:
     - job: simple-build
       artifacts: false
-  variables:
-    COMPILER_MAJOR_VERSION: 8
   except:
     variables:
       - $GROMACS_RELEASE
@@ -519,10 +507,9 @@ configure-clang-8:
 configure-clang-8-release:
   extends:
     - .configure-clang-release
-    - .clang8-template
+    - .use-clang8
   cache: {}
   variables:
-    COMPILER_MAJOR_VERSION: 8
     RELEASE_BUILD_DIR: release-builds-clang
   only:
     refs:
@@ -731,13 +718,11 @@ build-gcc-8-cuda-10.2:
 .build-clang:
   extends:
     - .build-extends-template
-    - .clang-before-script-template
-    - .build-clang-template
 
 build-clang-6:
   extends:
     - .build-clang
-    - .clang6-template
+    - .use-clang6
   needs:
     - job: simple-build
       artifacts: false
@@ -750,7 +735,7 @@ build-clang-6:
 build-clang-7:
   extends:
     - .build-clang
-    - .clang7-template
+    - .use-clang7
   needs:
     - job: simple-build
       artifacts: false
@@ -763,7 +748,7 @@ build-clang-7:
 build-clang-7-release:
   extends:
     - .build-clang
-    - .clang7-template
+    - .use-clang7
   stage: release-build
   variables:
     BUILD_DIR: release-builds-clang
@@ -782,7 +767,7 @@ build-clang-7-gmxapi:
   extends:
     - .build-clang
     - .gmxapi-extra-installs
-    - .clang7-template
+    - .use-clang7
   needs:
     - job: simple-build
       artifacts: false
@@ -796,7 +781,7 @@ build-clang-7-gmxapi-release:
   extends:
     - .build-clang
     - .gmxapi-extra-installs
-    - .clang7-template
+    - .use-clang7
   stage: release-build
   variables:
     BUILD_DIR: release-builds-clang
@@ -814,7 +799,7 @@ build-clang-7-gmxapi-release:
 build-clang-8:
   extends:
     - .build-clang
-    - .clang8-template
+    - .use-clang8
   needs:
     - job: simple-build
       artifacts: false
@@ -827,7 +812,7 @@ build-clang-8:
 build-clang-8-release:
   extends:
     - .build-clang
-    - .clang8-template
+    - .use-clang8
   stage: release-build
   variables:
     BUILD_DIR: release-builds-clang
@@ -1054,19 +1039,17 @@ test-gcc-8-cuda-10.2:
 
 .test-clang-template:
   variables:
-    COMPILER_MAJOR_VERSION: 7
     BUILD_DIR: build-clang
 
 .test-clang:
   extends:
     - .test-extends-template
-    - .clang-before-script-template
     - .test-clang-template
 
 test-clang-6:
   extends:
     - .test-clang
-    - .clang6-template
+    - .use-clang6
   needs:
     - job: simple-build
       artifacts: false
@@ -1078,7 +1061,7 @@ test-clang-6:
 test-clang-7:
   extends:
     - .test-clang
-    - .clang7-template
+    - .use-clang7
   needs:
     - job: simple-build
       artifacts: false
@@ -1090,7 +1073,7 @@ test-clang-7:
 test-clang-7-release:
   extends:
     - .test-clang
-    - .clang7-template
+    - .use-clang7
   stage: release-tests
   variables:
     BUILD_DIR: release-builds-clang
@@ -1111,7 +1094,7 @@ test-clang-7-gmxapi:
   extends:
     - .test-clang
     - .gmxapi-extra-installs
-    - .clang7-template
+    - .use-clang7
   needs:
     - job: simple-build
       artifacts: false
@@ -1124,7 +1107,7 @@ test-clang-7-gmxapi-release:
   extends:
     - .test-clang
     - .gmxapi-extra-installs
-    - .clang7-template
+    - .use-clang7
   stage: release-tests
   variables:
     BUILD_DIR: release-builds-clang
@@ -1144,7 +1127,7 @@ test-clang-7-gmxapi-release:
 test-clang-8:
   extends:
     - .test-clang
-    - .clang8-template
+    - .use-clang8
   needs:
     - job: simple-build
       artifacts: false
@@ -1156,7 +1139,7 @@ test-clang-8:
 test-clang-8-release:
   extends:
     - .test-clang
-    - .clang8-template
+    - .use-clang8
   stage: release-tests
   variables:
     BUILD_DIR: release-builds-clang