Reorganize release templates.
authorM. Eric Irrgang <ericirrgang@gmail.com>
Fri, 13 Mar 2020 11:10:55 +0000 (14:10 +0300)
committerPaul Bauer <paul.bauer.q@gmail.com>
Sun, 22 Mar 2020 11:09:22 +0000 (12:09 +0100)
Rename "release" config file to "archive" to collect jobs related to
preparing archives for export. "release" jobs are just special cases of
jobs that already fit in other categories.

Move several jobs between the "lint," "documentation," "testing-matrix,"
and "archive" groupings. Sort job definitions within files in terms of
execution dependency, definition dependency, and toolchain version.

In the future, we can probably reduce the distinction between jobs that
are 'release' or not (jobs that always run may choose a code path
according to to $GROMACS_RELEASE) so I'll leave the 'release' jobs
clustered with the non-'release' jobs.

Refs #3275

Change-Id: If675be3c64dfc2b42cdc4eba6b940226661ddbf3

.gitlab-ci.yml
admin/ci-templates/.release-template.yml [deleted file]
admin/gitlab-ci/archive.gitlab-ci.yml [new file with mode: 0644]
admin/gitlab-ci/documentation.gitlab-ci.yml
admin/gitlab-ci/lint.gitlab-ci.yml
admin/gitlab-ci/release.gitlab-ci.yml [deleted file]
admin/gitlab-ci/testing-matrix.gitlab-ci.yml

index ce48b4653560538806a7080a41f13a9d25120b83..9877a1d0b1025745e23f0c61331976538d7e177c 100644 (file)
@@ -58,7 +58,6 @@ include:
   - local: '/admin/ci-templates/.cuda-template.yml'
   - local: '/admin/ci-templates/.build-gmxapi-template.yml'
   - local: '/admin/ci-templates/.regressiontest-template.yml'
-  - local: '/admin/ci-templates/.release-template.yml'
   # Build and test in a variety of environments and configurations.
   # To do: expand matrix here to improve transparency and reduce file sizes.
   # E.g. '/admin/gitlab-ci/matrix/clang-8.gitlab-ci.yml
@@ -68,4 +67,4 @@ include:
   # Web page and manual.
   - local: '/admin/gitlab-ci/documentation.gitlab-ci.yml'
   # Prepare release archives.
-  - local: '/admin/gitlab-ci/release.gitlab-ci.yml'
+  - local: '/admin/gitlab-ci/archive.gitlab-ci.yml'
diff --git a/admin/ci-templates/.release-template.yml b/admin/ci-templates/.release-template.yml
deleted file mode 100644 (file)
index a4795af..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-.release-version-template:
-  # Docker image uploaded to dockerhub by user eriklindahl
-  # TODO: Get DockerFile for admin/dockerfiles
-  image: biophysics/gcc-gromacs
-  stage: configure-build
-
-  variables:
-    KUBERNETES_CPU_LIMIT: 1
-    KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
-
-  only:
-    refs:
-      - merge_requests
-      - schedules
-      - web
-    variables:
-      - $GROMACS_RELEASE
-  script:
-    - cmake -P cmake/gmxVersionInfo.cmake &> version.json
-
-  artifacts:
-    paths:
-      - version.json
-
-
-.release-verify-template:
-  image: biophysics/gcc-gromacs
-  stage: release-verify
-
-  variables:
-    KUBERNETES_CPU_LIMIT: 1
-    KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
-
-  only:
-    refs:
-      - merge_requests
-      - schedules
-      - web
-    variables:
-      - $GROMACS_RELEASE
-  script:
-    - VERSION=`cat version.json |
-        python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
-    - if [[ $GROMACS_RELEASE != "true" ]] ; then
-          VERSION=$VERSION-dev ;
-      fi
-    - REGTEST_COMPARE=`cat version.json |
-        python3 -c "import json,sys; print(json.load(sys.stdin)['regressiontest-md5sum'])"`
-    - SOURCENAME=gromacs-$VERSION
-    - SOURCETARBALL=$SOURCENAME.tar.gz
-    - SOURCE_MD5SUM=`md5sum $SOURCETARBALL | awk '{print $1}'`
-    - REGTESTNAME=regressiontests-$VERSION
-    - REGTESTTARBALL=$REGTESTNAME.tar.gz
-    - REGTEST_MD5SUM=`md5sum $REGTESTTARBALL | awk '{print $1}'`
-    - echo "$SOURCETARBALL md5sum = $SOURCE_MD5SUM"
-    - echo "$REGTESTTARBALL md5sum = $REGTEST_MD5SUM"
-    - echo "$REGTESTTARBALL reference md5sum = $REGTEST_COMPARE"
-    - if [[ $REGTEST_COMPARE != $REGTEST_MD5SUM && $GROMACS_RELEASE == "true" ]] ; then
-      echo "Mismatch in regressiontest md5sums";
-      exit 1;
-      fi
diff --git a/admin/gitlab-ci/archive.gitlab-ci.yml b/admin/gitlab-ci/archive.gitlab-ci.yml
new file mode 100644 (file)
index 0000000..e3d6a27
--- /dev/null
@@ -0,0 +1,218 @@
+# Packages, exported artifacts, and release engineering processes.
+
+.release-version-template:
+  # Docker image uploaded to dockerhub by user eriklindahl
+  # TODO: Get DockerFile for admin/dockerfiles
+  image: biophysics/gcc-gromacs
+  stage: configure-build
+
+  variables:
+    KUBERNETES_CPU_LIMIT: 1
+    KUBERNETES_CPU_REQUEST: 1
+    KUBERNETES_MEMORY_LIMIT: 2Gi
+
+  only:
+    refs:
+      - merge_requests
+      - schedules
+      - web
+    variables:
+      - $GROMACS_RELEASE
+  script:
+    - cmake -P cmake/gmxVersionInfo.cmake &> version.json
+
+  artifacts:
+    paths:
+      - version.json
+
+prepare-release-version:
+  extends:
+    - .regressiontests-extends-template
+    - .release-version-template
+
+# Special job to package regressiontest files and have them available for testing
+# Runs during pre-build
+
+.regressiontests-extends-template:
+  extends:
+    - .no-cache-template
+    - .variables:default
+
+prepare-regressiontests:
+  extends:
+    - .regressiontests-extends-template
+    - .regressiontests-template
+
+configure-archive-nightly:
+  stage: nightly-configure
+  only:
+    - triggers
+    - schedules
+  needs:
+    - job: simple-build
+      artifacts: false
+  except:
+    variables:
+      - $GROMACS_RELEASE
+  extends:
+    - .configure-docs
+  variables:
+    BUILD_DIR: build-package
+    CMAKE_SIMD_OPTIONS: -DGMX_SIMD=None
+    CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_USE_RDTSCP=OFF
+    CMAKE_MPI_OPTIONS: -DGMX_THREAD_MPI=OFF -DGMX_OPENMP=OFF
+
+configure-archive-release:
+  only:
+    refs:
+      - web
+      - triggers
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+  extends:
+    - .configure-docs
+  variables:
+    BUILD_DIR: build-package
+    CMAKE_SIMD_OPTIONS: -DGMX_SIMD=None
+    CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_USE_RDTSCP=OFF
+    CMAKE_MPI_OPTIONS: -DGMX_THREAD_MPI=OFF -DGMX_OPENMP=OFF
+
+.build-archive:
+  extends:
+    - .build-extends-template
+    - .documentation-before-script-template
+    - .build-docs-binary-template
+    - .archive-build-template
+
+build-archive-nightly:
+  extends:
+    - .build-archive
+  stage: nightly-build
+  needs:
+    - job: simple-build
+      artifacts: false
+    - job: configure-archive-nightly
+      artifacts: true
+  only:
+    - triggers
+    - schedules
+  except:
+    variables:
+      - $GROMACS_RELEASE
+  variables:
+    BUILD_DIR: build-package
+
+package-regressiontests-release:
+  extends:
+    - .regressiontests-extends-template
+    - .regressiontests-release-template
+  needs:
+    - job: prepare-release-version
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+
+package-archive-release:
+  extends:
+    - .build-archive
+  stage: release-package
+  needs:
+    - job: configure-archive-release
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+  variables:
+    BUILD_DIR: build-package
+
+.release-verify-template:
+  image: biophysics/gcc-gromacs
+  stage: release-verify
+
+  variables:
+    KUBERNETES_CPU_LIMIT: 1
+    KUBERNETES_CPU_REQUEST: 1
+    KUBERNETES_MEMORY_LIMIT: 2Gi
+
+  only:
+    refs:
+      - merge_requests
+      - schedules
+      - web
+    variables:
+      - $GROMACS_RELEASE
+  script:
+    - VERSION=`cat version.json |
+      python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
+    - if [[ $GROMACS_RELEASE != "true" ]] ; then
+      VERSION=$VERSION-dev ;
+      fi
+    - REGTEST_COMPARE=`cat version.json |
+      python3 -c "import json,sys; print(json.load(sys.stdin)['regressiontest-md5sum'])"`
+    - SOURCENAME=gromacs-$VERSION
+    - SOURCETARBALL=$SOURCENAME.tar.gz
+    - SOURCE_MD5SUM=`md5sum $SOURCETARBALL | awk '{print $1}'`
+    - REGTESTNAME=regressiontests-$VERSION
+    - REGTESTTARBALL=$REGTESTNAME.tar.gz
+    - REGTEST_MD5SUM=`md5sum $REGTESTTARBALL | awk '{print $1}'`
+    - echo "$SOURCETARBALL md5sum = $SOURCE_MD5SUM"
+    - echo "$REGTESTTARBALL md5sum = $REGTEST_MD5SUM"
+    - echo "$REGTESTTARBALL reference md5sum = $REGTEST_COMPARE"
+    - if [[ $REGTEST_COMPARE != $REGTEST_MD5SUM && $GROMACS_RELEASE == "true" ]] ; then
+      echo "Mismatch in regressiontest md5sums";
+      exit 1;
+      fi
+
+release-verify:
+  extends:
+    - .regressiontests-extends-template
+    - .release-verify-template
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+  dependencies:
+    - package-archive-release
+    - package-regressiontests-release
+    - prepare-release-version
+
+webpage-archive-release:
+  extends:
+    - .build-docs-webpage
+    - .configure-gmxapi-template
+  stage: release-deploy
+  only:
+    refs:
+      - web
+      - triggers
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+  dependencies:
+    - webpage-build-release
+    - package-archive-release
+    - package-regressiontests-release
+  variables:
+    BUILD_DIR: release-doc-builds
+  script:
+    - tar czf webpage.tar.gz $BUILD_DIR/docs/html/
+  artifacts:
+    when: always
+    paths:
+      - webpage.tar.gz
+      - gromacs-*tar.gz
+      - regressiontests-*tar.gz
+
index de262186ddf401c633aa2098e6bdf726a60bd3a9..e38b5d87a846ae1068242bda4c2a143b1d559af4 100644 (file)
     - .configure-docs-release-template
     - .documentation-before-script-template
 
-.build-docs-binary:
-  extends:
-    - .build-extends-template
-    - .build-cache-template
-    - .build-docs-binary-template
-    - .documentation-before-script-template
-
-.build-docs-webpage:
-  extends:
-    - .binary-build-template
-    - .variables:default
-    - .no-cache-template
-    - .build-docs-webpage-template
-    - .documentation-before-script-template
-
 configure-docs:
   extends:
     - .configure-docs
@@ -54,6 +39,21 @@ configure-docs-gmxapi:
     variables:
       - $GROMACS_RELEASE
 
+.build-docs-binary:
+  extends:
+    - .build-extends-template
+    - .build-cache-template
+    - .build-docs-binary-template
+    - .documentation-before-script-template
+
+.build-docs-webpage:
+  extends:
+    - .binary-build-template
+    - .variables:default
+    - .no-cache-template
+    - .build-docs-webpage-template
+    - .documentation-before-script-template
+
 build-docs:
   extends:
     - .build-docs-binary
@@ -207,31 +207,3 @@ webpage-build-release:
       - $GROMACS_RELEASE
   variables:
     BUILD_DIR: release-doc-builds
-
-webpage-archive-release:
-  extends:
-    - .build-docs-webpage
-    - .configure-gmxapi-template
-  stage: release-deploy
-  only:
-    refs:
-      - web
-      - triggers
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - webpage-build-release
-    - package-archive-release
-    - package-regressiontests-release
-  variables:
-    BUILD_DIR: release-doc-builds
-  script:
-    - tar czf webpage.tar.gz $BUILD_DIR/docs/html/
-  artifacts:
-    when: always
-    paths:
-      - webpage.tar.gz
-      - gromacs-*tar.gz
-      - regressiontests-*tar.gz
-
index b61293751b3d9f0f0ec9f0cff8b3ea5d57d8a4bf..3758efa4be12c4ed2dc25f88cff4ae9e8b309e5a 100644 (file)
@@ -1,5 +1,21 @@
 # Repository cleanliness. Source tidiness, linting, and policy compliance.
 
+configure-clang-tidy:
+  extends:
+    - .configure-clang
+    - .clang7-template
+  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:
+    variables:
+      - $GROMACS_RELEASE
+
 build-clang-tidy:
   extends:
     - .build-clang
@@ -120,3 +136,31 @@ run-check-source:
     paths:
       - $BUILD_DIR/docs/doxygen/doxygen-xml.log
       - $BUILD_DIR/docs/doxygen/check-source.log
+
+linkchecker:
+  extends:
+    - .build-docs-webpage
+  stage: nightly-build
+  dependencies:
+    - webpage-gmxapi
+  only:
+    - schedules
+    - triggers
+    - merge_requests
+    - external_pull_requests
+  except:
+    variables:
+      - $GROMACS_RELEASE
+  variables:
+    KUBERNETES_CPU_LIMIT: 1
+    KUBERNETES_CPU_REQUEST: 1
+    KUBERNETES_MEMORY_LIMIT: 2Gi
+    BUILD_DIR: build-docs-gmxapi
+  script:
+    - cd $BUILD_DIR
+    - linkchecker docs/html/index.html -f ../docs/linkcheckerrc -Fxml --ignore-url html-full
+      --ignore-url html-user --ignore-url html-lib --ignore-url .tar.gz --ignore-url _sources
+      -o xml
+  artifacts:
+    reports:
+      junit: $BUILD_DIR/linkchecker-out.xml
diff --git a/admin/gitlab-ci/release.gitlab-ci.yml b/admin/gitlab-ci/release.gitlab-ci.yml
deleted file mode 100644 (file)
index 8524309..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-# Packages, exported artifacts, and release engineering processes.
-
-# Jobs running in release stage
-linkchecker:
-  extends:
-    - .build-docs-webpage
-  stage: nightly-build
-  dependencies:
-    - webpage-gmxapi
-  only:
-    - schedules
-    - triggers
-    - merge_requests
-    - external_pull_requests
-  except:
-    variables:
-      - $GROMACS_RELEASE
-  variables:
-    KUBERNETES_CPU_LIMIT: 1
-    KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
-    BUILD_DIR: build-docs-gmxapi
-  script:
-    - cd $BUILD_DIR
-    - linkchecker docs/html/index.html -f ../docs/linkcheckerrc -Fxml --ignore-url html-full
-      --ignore-url html-user --ignore-url html-lib --ignore-url .tar.gz --ignore-url _sources
-      -o xml
-  artifacts:
-    reports:
-      junit: $BUILD_DIR/linkchecker-out.xml
-
-build-archive-nightly:
-  extends:
-    - .build-archive
-  stage: nightly-build
-  needs:
-    - job: simple-build
-      artifacts: false
-    - job: configure-archive-nightly
-      artifacts: true
-  only:
-    - triggers
-    - schedules
-  except:
-    variables:
-      - $GROMACS_RELEASE
-  variables:
-    BUILD_DIR: build-package
-
-package-regressiontests-release:
-  extends:
-    - .regressiontests-extends-template
-    - .regressiontests-release-template
-  needs:
-    - job: prepare-release-version
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-
-
-package-archive-release:
-  extends:
-    - .build-archive
-  stage: release-package
-  needs:
-    - job: configure-archive-release
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-  variables:
-    BUILD_DIR: build-package
-
-release-verify:
-  extends:
-    - .regressiontests-extends-template
-    - .release-verify-template
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - package-archive-release
-    - package-regressiontests-release
-    - prepare-release-version
-
-configure-gcc-7-release:
-  extends:
-    - .configure-gcc-release
-    - .no-cache-template
-    - .gcc7-template
-  variables:
-    COMPILER_MAJOR_VERSION: 7
-    RELEASE_BUILD_DIR: release-builds-gcc
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - package-archive-release
-    - package-regressiontests-release
-    - prepare-release-version
-
-configure-gcc-7-gmxapi-release:
-  extends:
-    - .configure-gcc-release
-    - .configure-gmxapi-template
-    - .no-cache-template
-    - .gcc7-template
-  variables:
-    COMPILER_MAJOR_VERSION: 7
-    RELEASE_BUILD_DIR: release-builds-gcc
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - package-archive-release
-    - package-regressiontests-release
-    - prepare-release-version
-
-configure-gcc-7-double-release:
-  extends:
-    - .configure-gcc-release
-    - .no-cache-template
-    - .gcc7-template
-  variables:
-    COMPILER_MAJOR_VERSION: 7
-    CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
-    RELEASE_BUILD_DIR: release-builds-gcc
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - package-archive-release
-    - package-regressiontests-release
-    - prepare-release-version
-
-configure-gcc-8-release:
-  extends:
-    - .configure-gcc-release
-    - .no-cache-template
-    - .gcc8-template
-  variables:
-    COMPILER_MAJOR_VERSION: 8
-    RELEASE_BUILD_DIR: release-builds-gcc
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - package-archive-release
-    - package-regressiontests-release
-    - prepare-release-version
-
-configure-clang-7-release:
-  extends:
-    - .configure-clang-release
-    - .no-cache-template
-    - .clang7-template
-  variables:
-    COMPILER_MAJOR_VERSION: 7
-    RELEASE_BUILD_DIR: release-builds-clang
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - package-archive-release
-    - package-regressiontests-release
-    - prepare-release-version
-
-configure-clang-7-gmxapi-release:
-  extends:
-    - .configure-clang-release
-    - .configure-gmxapi-template
-    - .no-cache-template
-    - .clang7-template
-  variables:
-    COMPILER_MAJOR_VERSION: 7
-    RELEASE_BUILD_DIR: release-builds-clang
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - package-archive-release
-    - package-regressiontests-release
-    - prepare-release-version
-
-configure-clang-8-release:
-  extends:
-    - .configure-clang-release
-    - .no-cache-template
-    - .clang8-template
-  variables:
-    COMPILER_MAJOR_VERSION: 8
-    RELEASE_BUILD_DIR: release-builds-clang
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-  dependencies:
-    - package-archive-release
-    - package-regressiontests-release
-    - prepare-release-version
-
-build-gcc-7-release:
-  extends:
-    - .build-gcc
-    - .gcc7-template
-  stage: release-build
-  variables:
-    BUILD_DIR: release-builds-gcc
-  needs:
-    - job: configure-gcc-7-release
-      artifacts: true
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-
-build-gcc-7-gmxapi-release:
-  extends:
-    - .build-gcc
-    - .gmxapi-extra-installs
-    - .gcc7-template
-  stage: release-build
-  variables:
-    BUILD_DIR: release-builds-gcc
-  needs:
-    - job: configure-gcc-7-gmxapi-release
-      artifacts: true
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-
-build-gcc-7-double-release:
-  extends:
-    - .build-gcc
-    - .gcc7-template
-  stage: release-build
-  variables:
-    BUILD_DIR: release-builds-gcc
-  needs:
-    - job: configure-gcc-7-double-release
-      artifacts: true
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-
-build-gcc-8-release:
-  extends:
-    - .build-gcc
-    - .gcc8-template
-  stage: release-build
-  variables:
-    BUILD_DIR: release-builds-gcc
-  needs:
-    - job: configure-gcc-8-release
-      artifacts: true
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-
-build-clang-7-release:
-  extends:
-    - .build-clang
-    - .clang7-template
-  stage: release-build
-  variables:
-    BUILD_DIR: release-builds-clang
-  needs:
-    - job: configure-clang-7-release
-      artifacts: true
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-
-build-clang-7-gmxapi-release:
-  extends:
-    - .build-clang
-    - .gmxapi-extra-installs
-    - .clang7-template
-  stage: release-build
-  variables:
-    BUILD_DIR: release-builds-clang
-  needs:
-    - job: configure-clang-7-gmxapi-release
-      artifacts: true
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-
-build-clang-8-release:
-  extends:
-    - .build-clang
-    - .clang8-template
-  stage: release-build
-  variables:
-    BUILD_DIR: release-builds-clang
-  needs:
-    - job: configure-clang-8-release
-      artifacts: true
-  only:
-    refs:
-      - web
-      - schedules
-      - triggers
-    variables:
-      - $GROMACS_RELEASE
-
-test-gcc-7-release:
-  extends:
-    - .test-gcc
-    - .gcc7-template
-  stage: release-tests
-  variables:
-    BUILD_DIR: release-builds-gcc
-  needs:
-    - job: configure-gcc-7-release
-      artifacts: true
-    - job: build-gcc-7-release
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-
-test-gcc-7-gmxapi-release:
-  extends:
-    - .test-gcc
-    - .gmxapi-extra-installs
-    - .gcc7-template
-  stage: release-tests
-  variables:
-    BUILD_DIR: release-builds-gcc
-  needs:
-    - job: configure-gcc-7-gmxapi-release
-      artifacts: true
-    - job: build-gcc-7-gmxapi-release
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-
-test-gcc-7-double-release:
-  extends:
-    - .test-gcc
-    - .gcc7-template
-  stage: release-tests
-  variables:
-    BUILD_DIR: release-builds-gcc
-  needs:
-    - job: configure-gcc-7-double-release
-      artifacts: true
-    - job: build-gcc-7-double-release
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-
-test-gcc-8-release:
-  extends:
-    - .test-gcc
-    - .gcc8-template
-  stage: release-tests
-  variables:
-    BUILD_DIR: release-builds-gcc
-  needs:
-    - job: configure-gcc-8-release
-      artifacts: true
-    - job: build-gcc-8-release
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-
-test-clang-7-release:
-  extends:
-    - .test-clang
-    - .clang7-template
-  stage: release-tests
-  variables:
-    BUILD_DIR: release-builds-clang
-  needs:
-    - job: configure-clang-7-release
-      artifacts: true
-    - job: build-clang-7-release
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-
-test-clang-7-gmxapi-release:
-  extends:
-    - .test-clang
-    - .gmxapi-extra-installs
-    - .clang7-template
-  stage: release-tests
-  variables:
-    BUILD_DIR: release-builds-clang
-  needs:
-    - job: configure-clang-7-gmxapi-release
-      artifacts: true
-    - job: build-clang-7-gmxapi-release
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
-
-test-clang-8-release:
-  extends:
-    - .test-clang
-    - .clang8-template
-  stage: release-tests
-  variables:
-    BUILD_DIR: release-builds-clang
-  needs:
-    - job: configure-clang-8-release
-      artifacts: true
-    - job: build-clang-8-release
-      artifacts: true
-  only:
-    refs:
-      - triggers
-      - web
-      - schedules
-    variables:
-      - $GROMACS_RELEASE
index 4ce279a033ceb36b47982448f0bbbfc54b6c5fa6..ca4a2b7c3f78ac6d3ccc4595040be53e35d859f6 100644 (file)
@@ -1,3 +1,20 @@
+# Initial build that always needs to pass before follow-up stages run
+simple-build:
+  extends:
+    - .simple-build-template
+    - .build-cache-template
+    - .variables:default
+    - .gcc-before-script-template
+    - .build-gcc-template
+    - .gcc7-template
+  variables:
+    COMPILER_MAJOR_VERSION: 7
+    BUILD_DIR: simple-build
+  except:
+    variables:
+      - $GROMACS_RELEASE
+
+# Jobs running in first pre-build stage
 
 .configure-extends-template:
   extends:
     - .no-cache-template
     - .variables:default
 
-.build-extends-template:
-  extends:
-    - .binary-build-template
-    - .build-cache-template
-    - .variables:default
-
-.test-extends-template:
-  extends:
-    - .test-base-template
-    - .pull-cache-template
-    - .test-script-template
-    - .variables:default
-
-.regressiontests-extends-template:
-  extends:
-    - .no-cache-template
-    - .variables:default
-
-
 # Templates for configuration stage
 .configure-gcc:
   extends:
     - .configure-gcc
     - .cuda-template
 
-.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
-
-# Templates for build stage
-.build-archive:
-  extends:
-    - .build-extends-template
-    - .documentation-before-script-template
-    - .build-docs-binary-template
-    - .archive-build-template
-
-.build-gcc:
-  extends:
-    - .build-extends-template
-    - .gcc-before-script-template
-    - .build-gcc-template
-
-.build-clang:
-  extends:
-    - .build-extends-template
-    - .clang-before-script-template
-    - .build-clang-template
-
-.build-gcc-cuda:
-  extends:
-    - .build-gcc
-    - .cuda-template
-
-# Templates for test stage
-.test-gcc:
-  extends:
-    - .test-extends-template
-    - .gcc-before-script-template
-    - .test-gcc-template
-
-.test-gcc-cuda:
-  extends:
-    - .test-gcc
-    - .cuda-template
-
-.test-clang:
-  extends:
-    - .test-extends-template
-    - .clang-before-script-template
-    - .test-clang-template
-
-# Special job to package regressiontest files and have them available for testing
-# Runs during pre-build
-prepare-regressiontests:
-  extends:
-    - .regressiontests-extends-template
-    - .regressiontests-template
-
-prepare-release-version:
+configure-gcc-7:
   extends:
-    - .regressiontests-extends-template
-    - .release-version-template
+    - .configure-gcc
+    - .gcc7-template
+  needs:
+    - job: simple-build
+      artifacts: false
+  variables:
+    COMPILER_MAJOR_VERSION: 7
+  except:
+    variables:
+      - $GROMACS_RELEASE
 
-# Initial build that always needs to pass before follow-up stages run
-simple-build:
+configure-gcc-7-release:
   extends:
-    - .simple-build-template
-    - .build-cache-template
-    - .variables:default
-    - .gcc-before-script-template
-    - .build-gcc-template
+    - .configure-gcc-release
+    - .no-cache-template
     - .gcc7-template
   variables:
     COMPILER_MAJOR_VERSION: 7
-    BUILD_DIR: simple-build
-  except:
+    RELEASE_BUILD_DIR: release-builds-gcc
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
     variables:
       - $GROMACS_RELEASE
+  dependencies:
+    - package-archive-release
+    - package-regressiontests-release
+    - prepare-release-version
 
-# Jobs running in first pre-build stage
-configure-gcc-7:
+configure-gcc-7-simd-sse41:
   extends:
     - .configure-gcc
     - .gcc7-template
@@ -141,38 +88,81 @@ configure-gcc-7:
       artifacts: false
   variables:
     COMPILER_MAJOR_VERSION: 7
+    CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
   except:
     variables:
       - $GROMACS_RELEASE
 
-configure-gcc-7-gmxapi:
+configure-gcc-7-double:
   extends:
     - .configure-gcc
-    - .configure-gmxapi-template
     - .gcc7-template
   needs:
     - job: simple-build
       artifacts: false
   variables:
     COMPILER_MAJOR_VERSION: 7
+    CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
   except:
     variables:
       - $GROMACS_RELEASE
 
-configure-gcc-7-double:
+configure-gcc-7-double-release:
+  extends:
+    - .configure-gcc-release
+    - .no-cache-template
+    - .gcc7-template
+  variables:
+    COMPILER_MAJOR_VERSION: 7
+    CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
+    RELEASE_BUILD_DIR: release-builds-gcc
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
+    variables:
+      - $GROMACS_RELEASE
+  dependencies:
+    - package-archive-release
+    - package-regressiontests-release
+    - prepare-release-version
+
+configure-gcc-7-gmxapi:
   extends:
     - .configure-gcc
+    - .configure-gmxapi-template
     - .gcc7-template
   needs:
     - job: simple-build
       artifacts: false
   variables:
     COMPILER_MAJOR_VERSION: 7
-    CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
   except:
     variables:
       - $GROMACS_RELEASE
 
+configure-gcc-7-gmxapi-release:
+  extends:
+    - .configure-gcc-release
+    - .configure-gmxapi-template
+    - .no-cache-template
+    - .gcc7-template
+  variables:
+    COMPILER_MAJOR_VERSION: 7
+    RELEASE_BUILD_DIR: release-builds-gcc
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
+    variables:
+      - $GROMACS_RELEASE
+  dependencies:
+    - package-archive-release
+    - package-regressiontests-release
+    - prepare-release-version
+
 configure-gcc-8:
   extends:
     - .configure-gcc
@@ -186,6 +176,26 @@ configure-gcc-8:
     variables:
       - $GROMACS_RELEASE
 
+configure-gcc-8-release:
+  extends:
+    - .configure-gcc-release
+    - .no-cache-template
+    - .gcc8-template
+  variables:
+    COMPILER_MAJOR_VERSION: 8
+    RELEASE_BUILD_DIR: release-builds-gcc
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
+    variables:
+      - $GROMACS_RELEASE
+  dependencies:
+    - package-archive-release
+    - package-regressiontests-release
+    - prepare-release-version
+
 configure-gcc-8-cuda-10.2:
   extends:
     - .configure-gcc-cuda
@@ -197,16 +207,31 @@ configure-gcc-8-cuda-10.2:
     variables:
       - $GROMACS_RELEASE
 
-configure-gcc-7-simd-sse41:
+.configure-clang:
   extends:
-    - .configure-gcc
-    - .gcc7-template
+    - .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:
+# APT_COMPILER_VERSION=$(($COMPILER_MAJOR_VERSION < 7 ? "${COMPILER_MAJOR_VERSION}.0" : $COMPILER_MAJOR_VERSION))
+configure-clang-6:
+  extends:
+    - .configure-clang
+    - .clang6-template
   needs:
     - job: simple-build
       artifacts: false
   variables:
-    COMPILER_MAJOR_VERSION: 7
-    CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
+    COMPILER_MAJOR_VERSION: "6.0"
+    CMAKE_MPI_OPTIONS: -DGMX_OPENMP=OFF
   except:
     variables:
       - $GROMACS_RELEASE
@@ -224,6 +249,26 @@ configure-clang-7:
     variables:
       - $GROMACS_RELEASE
 
+configure-clang-7-release:
+  extends:
+    - .configure-clang-release
+    - .no-cache-template
+    - .clang7-template
+  variables:
+    COMPILER_MAJOR_VERSION: 7
+    RELEASE_BUILD_DIR: release-builds-clang
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
+    variables:
+      - $GROMACS_RELEASE
+  dependencies:
+    - package-archive-release
+    - package-regressiontests-release
+    - prepare-release-version
+
 configure-clang-7-gmxapi:
   extends:
     - .configure-clang
@@ -238,104 +283,136 @@ configure-clang-7-gmxapi:
     variables:
       - $GROMACS_RELEASE
 
-configure-clang-8:
+configure-clang-7-gmxapi-release:
   extends:
-    - .configure-clang
-    - .clang8-template
-  needs:
-    - job: simple-build
-      artifacts: false
+    - .configure-clang-release
+    - .configure-gmxapi-template
+    - .no-cache-template
+    - .clang7-template
   variables:
-    COMPILER_MAJOR_VERSION: 8
-  except:
+    COMPILER_MAJOR_VERSION: 7
+    RELEASE_BUILD_DIR: release-builds-clang
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
     variables:
       - $GROMACS_RELEASE
+  dependencies:
+    - package-archive-release
+    - package-regressiontests-release
+    - prepare-release-version
 
-# For version of clang before 7, we need to always provide the full version
-# Use something like this instead in the download script:
-# APT_COMPILER_VERSION=$(($COMPILER_MAJOR_VERSION < 7 ? "${COMPILER_MAJOR_VERSION}.0" : $COMPILER_MAJOR_VERSION))
-configure-clang-6:
+configure-clang-8:
   extends:
     - .configure-clang
-    - .clang6-template
+    - .clang8-template
   needs:
     - job: simple-build
       artifacts: false
   variables:
-    COMPILER_MAJOR_VERSION: "6.0"
-    CMAKE_MPI_OPTIONS: -DGMX_OPENMP=OFF
+    COMPILER_MAJOR_VERSION: 8
   except:
     variables:
       - $GROMACS_RELEASE
 
-configure-clang-tidy:
+configure-clang-8-release:
   extends:
-    - .configure-clang
-    - .clang7-template
-  needs:
-    - job: simple-build
-      artifacts: false
+    - .configure-clang-release
+    - .no-cache-template
+    - .clang8-template
   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:
+    COMPILER_MAJOR_VERSION: 8
+    RELEASE_BUILD_DIR: release-builds-clang
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
     variables:
       - $GROMACS_RELEASE
+  dependencies:
+    - package-archive-release
+    - package-regressiontests-release
+    - prepare-release-version
 
-# Only running in scheduled pipelines that are not release builds
-configure-archive-nightly:
-  stage: nightly-configure
-  only:
-    - triggers
-    - schedules
+# Jobs running during build stage
+
+.build-extends-template:
+  extends:
+    - .binary-build-template
+    - .build-cache-template
+    - .variables:default
+
+.build-gcc:
+  extends:
+    - .build-extends-template
+    - .gcc-before-script-template
+    - .build-gcc-template
+
+.build-gcc-cuda:
+  extends:
+    - .build-gcc
+    - .cuda-template
+
+build-gcc-7:
+  extends:
+    - .build-gcc
+    - .gcc7-template
   needs:
     - job: simple-build
       artifacts: false
+    - job: configure-gcc-7
+      artifacts: true
   except:
     variables:
       - $GROMACS_RELEASE
+
+build-gcc-7-release:
   extends:
-    - .configure-docs
+    - .build-gcc
+    - .gcc7-template
+  stage: release-build
   variables:
-    BUILD_DIR: build-package
-    CMAKE_SIMD_OPTIONS: -DGMX_SIMD=None
-    CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_USE_RDTSCP=OFF
-    CMAKE_MPI_OPTIONS: -DGMX_THREAD_MPI=OFF -DGMX_OPENMP=OFF
-
-configure-archive-release:
+    BUILD_DIR: release-builds-gcc
+  needs:
+    - job: configure-gcc-7-release
+      artifacts: true
   only:
     refs:
       - web
-      - triggers
       - schedules
+      - triggers
     variables:
       - $GROMACS_RELEASE
 
+build-gcc-7-simd-sse41:
   extends:
-    - .configure-docs
-  variables:
-    BUILD_DIR: build-package
-    CMAKE_SIMD_OPTIONS: -DGMX_SIMD=None
-    CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_USE_RDTSCP=OFF
-    CMAKE_MPI_OPTIONS: -DGMX_THREAD_MPI=OFF -DGMX_OPENMP=OFF
+    - .build-gcc
+    - .gcc7-template
+  needs:
+    - job: simple-build
+      artifacts: false
+    - job: configure-gcc-7-simd-sse41
+      artifacts: true
+  except:
+    variables:
+      - $GROMACS_RELEASE
 
-# Jobs running during build stage
-build-gcc-7:
+build-gcc-7-double:
   extends:
     - .build-gcc
     - .gcc7-template
   needs:
     - job: simple-build
       artifacts: false
-    - job: configure-gcc-7
+    - job: configure-gcc-7-double
       artifacts: true
   except:
     variables:
       - $GROMACS_RELEASE
 
-
 build-gcc-7-gmxapi:
   extends:
     - .build-gcc
@@ -350,16 +427,40 @@ build-gcc-7-gmxapi:
     variables:
       - $GROMACS_RELEASE
 
-build-gcc-7-double:
+build-gcc-7-double-release:
   extends:
     - .build-gcc
     - .gcc7-template
+  stage: release-build
+  variables:
+    BUILD_DIR: release-builds-gcc
   needs:
-    - job: simple-build
-      artifacts: false
-    - job: configure-gcc-7-double
+    - job: configure-gcc-7-double-release
       artifacts: true
-  except:
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
+    variables:
+      - $GROMACS_RELEASE
+
+build-gcc-7-gmxapi-release:
+  extends:
+    - .build-gcc
+    - .gmxapi-extra-installs
+    - .gcc7-template
+  stage: release-build
+  variables:
+    BUILD_DIR: release-builds-gcc
+  needs:
+    - job: configure-gcc-7-gmxapi-release
+      artifacts: true
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
     variables:
       - $GROMACS_RELEASE
 
@@ -376,6 +477,24 @@ build-gcc-8:
     variables:
       - $GROMACS_RELEASE
 
+build-gcc-8-release:
+  extends:
+    - .build-gcc
+    - .gcc8-template
+  stage: release-build
+  variables:
+    BUILD_DIR: release-builds-gcc
+  needs:
+    - job: configure-gcc-8-release
+      artifacts: true
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
+    variables:
+      - $GROMACS_RELEASE
+
 build-gcc-8-cuda-10.2:
   extends:
     - .build-gcc-cuda
@@ -389,14 +508,20 @@ build-gcc-8-cuda-10.2:
     variables:
       - $GROMACS_RELEASE
 
-build-gcc-7-simd-sse41:
+.build-clang:
   extends:
-    - .build-gcc
-    - .gcc7-template
+    - .build-extends-template
+    - .clang-before-script-template
+    - .build-clang-template
+
+build-clang-6:
+  extends:
+    - .build-clang
+    - .clang6-template
   needs:
     - job: simple-build
       artifacts: false
-    - job: configure-gcc-7-simd-sse41
+    - job: configure-clang-6
       artifacts: true
   except:
     variables:
@@ -415,6 +540,24 @@ build-clang-7:
     variables:
       - $GROMACS_RELEASE
 
+build-clang-7-release:
+  extends:
+    - .build-clang
+    - .clang7-template
+  stage: release-build
+  variables:
+    BUILD_DIR: release-builds-clang
+  needs:
+    - job: configure-clang-7-release
+      artifacts: true
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
+    variables:
+      - $GROMACS_RELEASE
+
 build-clang-7-gmxapi:
   extends:
     - .build-clang
@@ -429,6 +572,25 @@ build-clang-7-gmxapi:
     variables:
       - $GROMACS_RELEASE
 
+build-clang-7-gmxapi-release:
+  extends:
+    - .build-clang
+    - .gmxapi-extra-installs
+    - .clang7-template
+  stage: release-build
+  variables:
+    BUILD_DIR: release-builds-clang
+  needs:
+    - job: configure-clang-7-gmxapi-release
+      artifacts: true
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
+    variables:
+      - $GROMACS_RELEASE
+
 build-clang-8:
   extends:
     - .build-clang
@@ -442,20 +604,46 @@ build-clang-8:
     variables:
       - $GROMACS_RELEASE
 
-build-clang-6:
+build-clang-8-release:
   extends:
     - .build-clang
-    - .clang6-template
+    - .clang8-template
+  stage: release-build
+  variables:
+    BUILD_DIR: release-builds-clang
   needs:
-    - job: simple-build
-      artifacts: false
-    - job: configure-clang-6
+    - job: configure-clang-8-release
       artifacts: true
-  except:
+  only:
+    refs:
+      - web
+      - schedules
+      - triggers
     variables:
       - $GROMACS_RELEASE
 
+
 # Jobs running during test stage
+
+.test-extends-template:
+  extends:
+    - .test-base-template
+    - .pull-cache-template
+    - .test-script-template
+    - .variables:default
+
+# Templates for test stage
+.test-gcc:
+  extends:
+    - .test-extends-template
+    - .gcc-before-script-template
+    - .test-gcc-template
+
+.test-gcc-cuda:
+  extends:
+    - .test-gcc
+    - .cuda-template
+
 test-gcc-7:
   extends:
     - .test-gcc
@@ -468,15 +656,34 @@ test-gcc-7:
     variables:
       - $GROMACS_RELEASE
 
-test-gcc-7-gmxapi:
+test-gcc-7-release:
+  extends:
+    - .test-gcc
+    - .gcc7-template
+  stage: release-tests
+  variables:
+    BUILD_DIR: release-builds-gcc
+  needs:
+    - job: configure-gcc-7-release
+      artifacts: true
+    - job: build-gcc-7-release
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+
+test-gcc-7-simd-sse41:
   extends:
     - .test-gcc
-    - .gmxapi-extra-installs
     - .gcc7-template
   needs:
     - job: simple-build
       artifacts: false
-    - job: build-gcc-7-gmxapi
+    - job: build-gcc-7-simd-sse41
   except:
     variables:
       - $GROMACS_RELEASE
@@ -493,6 +700,60 @@ test-gcc-7-double:
     variables:
       - $GROMACS_RELEASE
 
+test-gcc-7-double-release:
+  extends:
+    - .test-gcc
+    - .gcc7-template
+  stage: release-tests
+  variables:
+    BUILD_DIR: release-builds-gcc
+  needs:
+    - job: configure-gcc-7-double-release
+      artifacts: true
+    - job: build-gcc-7-double-release
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+
+test-gcc-7-gmxapi:
+  extends:
+    - .test-gcc
+    - .gmxapi-extra-installs
+    - .gcc7-template
+  needs:
+    - job: simple-build
+      artifacts: false
+    - job: build-gcc-7-gmxapi
+  except:
+    variables:
+      - $GROMACS_RELEASE
+
+test-gcc-7-gmxapi-release:
+  extends:
+    - .test-gcc
+    - .gmxapi-extra-installs
+    - .gcc7-template
+  stage: release-tests
+  variables:
+    BUILD_DIR: release-builds-gcc
+  needs:
+    - job: configure-gcc-7-gmxapi-release
+      artifacts: true
+    - job: build-gcc-7-gmxapi-release
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+
 test-gcc-8:
   extends:
     - .test-gcc
@@ -505,6 +766,26 @@ test-gcc-8:
     variables:
       - $GROMACS_RELEASE
 
+test-gcc-8-release:
+  extends:
+    - .test-gcc
+    - .gcc8-template
+  stage: release-tests
+  variables:
+    BUILD_DIR: release-builds-gcc
+  needs:
+    - job: configure-gcc-8-release
+      artifacts: true
+    - job: build-gcc-8-release
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+
 test-gcc-8-cuda-10.2:
   variables:
     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
@@ -520,14 +801,20 @@ test-gcc-8-cuda-10.2:
     variables:
       - $GROMACS_RELEASE
 
-test-gcc-7-simd-sse41:
+.test-clang:
   extends:
-    - .test-gcc
-    - .gcc7-template
+    - .test-extends-template
+    - .clang-before-script-template
+    - .test-clang-template
+
+test-clang-6:
+  extends:
+    - .test-clang
+    - .clang6-template
   needs:
     - job: simple-build
       artifacts: false
-    - job: build-gcc-7-simd-sse41
+    - job: build-clang-6
   except:
     variables:
       - $GROMACS_RELEASE
@@ -544,6 +831,26 @@ test-clang-7:
     variables:
       - $GROMACS_RELEASE
 
+test-clang-7-release:
+  extends:
+    - .test-clang
+    - .clang7-template
+  stage: release-tests
+  variables:
+    BUILD_DIR: release-builds-clang
+  needs:
+    - job: configure-clang-7-release
+      artifacts: true
+    - job: build-clang-7-release
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+
 test-clang-7-gmxapi:
   extends:
     - .test-clang
@@ -557,6 +864,27 @@ test-clang-7-gmxapi:
     variables:
       - $GROMACS_RELEASE
 
+test-clang-7-gmxapi-release:
+  extends:
+    - .test-clang
+    - .gmxapi-extra-installs
+    - .clang7-template
+  stage: release-tests
+  variables:
+    BUILD_DIR: release-builds-clang
+  needs:
+    - job: configure-clang-7-gmxapi-release
+      artifacts: true
+    - job: build-clang-7-gmxapi-release
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
+    variables:
+      - $GROMACS_RELEASE
+
 test-clang-8:
   extends:
     - .test-clang
@@ -569,14 +897,22 @@ test-clang-8:
     variables:
       - $GROMACS_RELEASE
 
-test-clang-6:
+test-clang-8-release:
   extends:
     - .test-clang
-    - .clang6-template
+    - .clang8-template
+  stage: release-tests
+  variables:
+    BUILD_DIR: release-builds-clang
   needs:
-    - job: simple-build
-      artifacts: false
-    - job: build-clang-6
-  except:
+    - job: configure-clang-8-release
+      artifacts: true
+    - job: build-clang-8-release
+      artifacts: true
+  only:
+    refs:
+      - triggers
+      - web
+      - schedules
     variables:
       - $GROMACS_RELEASE