- 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
# 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'
+++ /dev/null
-.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
--- /dev/null
+# 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
+
- .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
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
- $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
-
# 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
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
+++ /dev/null
-# 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
+# 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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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"
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
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
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
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