+# Build, test, and install variously configured GROMACS installations.
# Initial build that always needs to pass before follow-up stages run
simple-build:
# Jobs running in first pre-build stage
-.configure-extends-template:
+.gromacs:base:configure:
extends:
- .variables:default
cache: {}
paths:
- $BUILD_DIR
-.configure-release-extends-template:
+.gromacs:base:release:configure:
extends:
- .variables:default
cache: {}
- $RELEASE_SOURCE
# Templates for configuration stage
-.configure-gcc-cuda:
- extends:
- - .configure-extends-template
- - .cuda-template
-configure-gcc-7:
+gromacs:gcc-7:configure:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .use-gcc7
needs:
- job: simple-build
variables:
- $GROMACS_RELEASE
-configure-gcc-7-release:
+gromacs:gcc-7:release:configure:
extends:
- - .configure-release-extends-template
+ - .gromacs:base:release:configure
- .use-gcc7
cache: {}
variables:
- package-regressiontests-release
- prepare-release-version
-configure-gcc-7-simd-sse41:
+gromacs:gcc-7-simd-sse41:configure:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .use-gcc7
needs:
- job: simple-build
variables:
- $GROMACS_RELEASE
-configure-gcc-7-double:
+gromacs:gcc-7-double:configure:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .use-gcc7
needs:
- job: simple-build
variables:
- $GROMACS_RELEASE
-configure-gcc-7-double-release:
+gromacs:gcc-7-double:release:configure:
extends:
- - .configure-release-extends-template
+ - .gromacs:base:release:configure
- .use-gcc7
cache: {}
variables:
- package-regressiontests-release
- prepare-release-version
-configure-gcc-7-gmxapi:
+gromacs:gcc-7:configure-gmxapi:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .configure-gmxapi-template
- .use-gcc7
needs:
variables:
- $GROMACS_RELEASE
-configure-gcc-7-gmxapi-release:
+gromacs:gcc-7:release:configure-gmxapi:
extends:
- - .configure-release-extends-template
+ - .gromacs:base:release:configure
- .configure-gmxapi-template
- .use-gcc7
cache: {}
- package-regressiontests-release
- prepare-release-version
-configure-gcc-8:
+gromacs:gcc-8:configure:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .use-gcc8
needs:
- job: simple-build
variables:
- $GROMACS_RELEASE
-configure-gcc-8-release:
+gromacs:gcc-8:release:configure:
extends:
- - .configure-release-extends-template
+ - .gromacs:base:release:configure
- .use-gcc8
cache: {}
variables:
- package-regressiontests-release
- prepare-release-version
-configure-gcc-8-cuda-10.2:
+gromacs:gcc-8-cuda-10.2:configure:
extends:
- - .configure-gcc-cuda
+ - .gromacs:base:configure
+ - .use-cuda
- .use-gcc8:cuda-10.2
needs:
- job: simple-build
# 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:
+gromacs:clang-6:configure:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .use-clang6
needs:
- job: simple-build
variables:
- $GROMACS_RELEASE
-configure-clang-7:
+gromacs:clang-7:configure:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .use-clang7
needs:
- job: simple-build
variables:
- $GROMACS_RELEASE
-configure-clang-7-release:
+gromacs:clang-7:release:configure:
extends:
- - .configure-release-extends-template
+ - .gromacs:base:release:configure
- .use-clang7
cache: {}
variables:
- package-regressiontests-release
- prepare-release-version
-configure-clang-7-gmxapi:
+gromacs:clang-7:configure-gmxapi:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .configure-gmxapi-template
- .use-clang7
needs:
variables:
- $GROMACS_RELEASE
-configure-clang-7-gmxapi-release:
+gromacs:clang-7:release:configure-gmxapi:
extends:
- - .configure-release-extends-template
+ - .gromacs:base:release:configure
- .configure-gmxapi-template
- .use-clang7
cache: {}
- package-regressiontests-release
- prepare-release-version
-configure-clang-8:
+gromacs:clang-8:configure:
extends:
- - .configure-extends-template
+ - .gromacs:base:configure
- .use-clang8
needs:
- job: simple-build
variables:
- $GROMACS_RELEASE
-configure-clang-8-release:
+gromacs:clang-8:release:configure:
extends:
- - .configure-release-extends-template
+ - .gromacs:base:release:configure
- .use-clang8
cache: {}
variables:
# Jobs running during build stage
-.binary-build-template:
+.gromacs:base:build:
# Dockerfiles are from dockerhub, user eriklindahl
# image in admin/dockerimages/ci-docs-py27
stage: build
- image: biophysics/gcc-gromacs
- variables:
-
script:
- cd $BUILD_DIR
- cmake --build . -- -j8 2>&1 | tee buildLogFile.log
- $BUILD_DIR
- $INSTALL_DIR/
-.build-extends-template:
+gromacs:gcc-7:build:
extends:
- - .binary-build-template
+ - .gromacs:base:build
- .use-ccache
- .variables:default
-
-.build-gcc-cuda:
- extends:
- - .build-extends-template
- - .cuda-template
-
-build-gcc-7:
- extends:
- - .build-extends-template
- .use-gcc7
needs:
- job: simple-build
artifacts: false
- - job: configure-gcc-7
+ - job: gromacs:gcc-7:configure
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-gcc-7-release:
+gromacs:gcc-7:release:build:
extends:
- - .build-extends-template
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-gcc7
stage: release-build
variables:
BUILD_DIR: release-builds-gcc
needs:
- - job: configure-gcc-7-release
+ - job: gromacs:gcc-7:release:configure
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-build-gcc-7-simd-sse41:
+gromacs:gcc-7-simd-sse41:build:
extends:
- - .build-extends-template
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-gcc7
needs:
- job: simple-build
artifacts: false
- - job: configure-gcc-7-simd-sse41
+ - job: gromacs:gcc-7-simd-sse41:configure
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-gcc-7-double:
+gromacs:gcc-7-double:build:
extends:
- - .build-extends-template
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-gcc7
needs:
- job: simple-build
artifacts: false
- - job: configure-gcc-7-double
+ - job: gromacs:gcc-7-double:configure
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-gcc-7-gmxapi:
+gromacs:gcc-7:build-gmxapi:
extends:
- - .build-extends-template
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .gmxapi-extra-installs
- .use-gcc7
needs:
- job: simple-build
artifacts: false
- - job: configure-gcc-7-gmxapi
+ - job: gromacs:gcc-7:configure-gmxapi
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-gcc-7-double-release:
+gromacs:gcc-7-double:release:build:
extends:
- - .build-extends-template
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-gcc7
stage: release-build
variables:
BUILD_DIR: release-builds-gcc
needs:
- - job: configure-gcc-7-double-release
+ - job: gromacs:gcc-7-double:release:configure
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-build-gcc-7-gmxapi-release:
+gromacs:gcc-7:release:build-gmxapi:
extends:
- - .build-extends-template
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .gmxapi-extra-installs
- .use-gcc7
stage: release-build
variables:
BUILD_DIR: release-builds-gcc
needs:
- - job: configure-gcc-7-gmxapi-release
+ - job: gromacs:gcc-7:release:configure-gmxapi
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-build-gcc-8:
+gromacs:gcc-8:build:
extends:
- - .build-extends-template
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-gcc8
needs:
- job: simple-build
artifacts: false
- - job: configure-gcc-8
+ - job: gromacs:gcc-8:configure
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-gcc-8-release:
+gromacs:gcc-8:release:build:
extends:
- - .build-extends-template
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-gcc8
stage: release-build
variables:
BUILD_DIR: release-builds-gcc
needs:
- - job: configure-gcc-8-release
+ - job: gromacs:gcc-8:release:configure
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-build-gcc-8-cuda-10.2:
+gromacs:gcc-8-cuda-10.2:build:
extends:
- - .build-gcc-cuda
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
+ - .use-cuda
- .use-gcc8:cuda-10.2
needs:
- job: simple-build
artifacts: false
- - job: configure-gcc-8-cuda-10.2
+ - job: gromacs:gcc-8-cuda-10.2:configure
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-.build-clang:
+gromacs:clang-6:build:
extends:
- - .build-extends-template
-
-build-clang-6:
- extends:
- - .build-clang
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-clang6
needs:
- job: simple-build
artifacts: false
- - job: configure-clang-6
+ - job: gromacs:clang-6:configure
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-clang-7:
+gromacs:clang-7:build:
extends:
- - .build-clang
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-clang7
needs:
- job: simple-build
artifacts: false
- - job: configure-clang-7
+ - job: gromacs:clang-7:configure
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-clang-7-release:
+gromacs:clang-7:release:build:
extends:
- - .build-clang
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-clang7
stage: release-build
variables:
BUILD_DIR: release-builds-clang
needs:
- - job: configure-clang-7-release
+ - job: gromacs:clang-7:release:configure
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-build-clang-7-gmxapi:
+gromacs:clang-7:build-gmxapi:
extends:
- - .build-clang
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .gmxapi-extra-installs
- .use-clang7
needs:
- job: simple-build
artifacts: false
- - job: configure-clang-7-gmxapi
+ - job: gromacs:clang-7:configure-gmxapi
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-clang-7-gmxapi-release:
+gromacs:clang-7:release:build-gmxapi:
extends:
- - .build-clang
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .gmxapi-extra-installs
- .use-clang7
stage: release-build
variables:
BUILD_DIR: release-builds-clang
needs:
- - job: configure-clang-7-gmxapi-release
+ - job: gromacs:clang-7:release:configure-gmxapi
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-build-clang-8:
+gromacs:clang-8:build:
extends:
- - .build-clang
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-clang8
needs:
- job: simple-build
artifacts: false
- - job: configure-clang-8
+ - job: gromacs:clang-8:configure
artifacts: true
except:
variables:
- $GROMACS_RELEASE
-build-clang-8-release:
+gromacs:clang-8:release:build:
extends:
- - .build-clang
+ - .gromacs:base:build
+ - .use-ccache
+ - .variables:default
- .use-clang8
stage: release-build
variables:
BUILD_DIR: release-builds-clang
needs:
- - job: configure-clang-8-release
+ - job: gromacs:clang-8:release:configure
artifacts: true
only:
refs:
# Jobs running during test stage
-.test-script-template:
+
+.gromacs:base:test:
+ stage: test
+ retry:
+ max: 2
+ extends:
+ - .variables:default
script:
- cd $BUILD_DIR
- ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true
when: always
expire_in: 1 week
-.test-extends-template:
- stage: test
- retry:
- max: 2
- extends:
- - .test-script-template
- - .variables:default
-
-.test-gcc-cuda:
- extends:
- - .test-extends-template
- - .cuda-template
-
-test-gcc-7:
+gromacs:gcc-7:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-gcc7
needs:
- job: simple-build
artifacts: false
- - job: build-gcc-7
+ - job: gromacs:gcc-7:build
except:
variables:
- $GROMACS_RELEASE
-test-gcc-7-release:
+gromacs:gcc-7:release:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-gcc7
stage: release-tests
variables:
BUILD_DIR: release-builds-gcc
needs:
- - job: configure-gcc-7-release
+ - job: gromacs:gcc-7:release:configure
artifacts: true
- - job: build-gcc-7-release
+ - job: gromacs:gcc-7:release:build
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-test-gcc-7-simd-sse41:
+gromacs:gcc-7-simd-sse41:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-gcc7
needs:
- job: simple-build
artifacts: false
- - job: build-gcc-7-simd-sse41
+ - job: gromacs:gcc-7-simd-sse41:build
except:
variables:
- $GROMACS_RELEASE
-test-gcc-7-double:
+gromacs:gcc-7-double:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-gcc7
needs:
- job: simple-build
artifacts: false
- - job: build-gcc-7-double
+ - job: gromacs:gcc-7-double:build
except:
variables:
- $GROMACS_RELEASE
-test-gcc-7-double-release:
+gromacs:gcc-7-double:release:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-gcc7
stage: release-tests
variables:
BUILD_DIR: release-builds-gcc
needs:
- - job: configure-gcc-7-double-release
+ - job: gromacs:gcc-7-double:release:configure
artifacts: true
- - job: build-gcc-7-double-release
+ - job: gromacs:gcc-7-double:release:build
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-test-gcc-7-gmxapi:
+gromacs:gcc-7:test-gmxapi:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .gmxapi-extra-installs
- .use-gcc7
needs:
- job: simple-build
artifacts: false
- - job: build-gcc-7-gmxapi
+ - job: gromacs:gcc-7:build-gmxapi
except:
variables:
- $GROMACS_RELEASE
-test-gcc-7-gmxapi-release:
+gromacs:gcc-7:release:test-gmxapi:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .gmxapi-extra-installs
- .use-gcc7
stage: release-tests
variables:
BUILD_DIR: release-builds-gcc
needs:
- - job: configure-gcc-7-gmxapi-release
+ - job: gromacs:gcc-7:release:configure-gmxapi
artifacts: true
- - job: build-gcc-7-gmxapi-release
+ - job: gromacs:gcc-7:release:build-gmxapi
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-test-gcc-8:
+gromacs:gcc-8:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-gcc8
needs:
- job: simple-build
artifacts: false
- - job: build-gcc-8
+ - job: gromacs:gcc-8:build
except:
variables:
- $GROMACS_RELEASE
-test-gcc-8-release:
+gromacs:gcc-8:release:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-gcc8
stage: release-tests
variables:
BUILD_DIR: release-builds-gcc
needs:
- - job: configure-gcc-8-release
+ - job: gromacs:gcc-8:release:configure
artifacts: true
- - job: build-gcc-8-release
+ - job: gromacs:gcc-8:release:build
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-test-gcc-8-cuda-10.2:
+gromacs:gcc-8-cuda-10.2:test:
variables:
KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
extends:
- - .test-gcc-cuda
+ - .gromacs:base:test
+ - .use-cuda
- .use-gcc8:cuda-10.2
needs:
- job: simple-build
artifacts: false
- - job: build-gcc-8-cuda-10.2
+ - job: gromacs:gcc-8-cuda-10.2:build
except:
variables:
- $GROMACS_RELEASE
-test-clang-6:
+gromacs:clang-6:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-clang6
needs:
- job: simple-build
artifacts: false
- - job: build-clang-6
+ - job: gromacs:clang-6:build
except:
variables:
- $GROMACS_RELEASE
-test-clang-7:
+gromacs:clang-7:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-clang7
needs:
- job: simple-build
artifacts: false
- - job: build-clang-7
+ - job: gromacs:clang-7:build
except:
variables:
- $GROMACS_RELEASE
-test-clang-7-release:
+gromacs:clang-7:release:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-clang7
stage: release-tests
variables:
BUILD_DIR: release-builds-clang
needs:
- - job: configure-clang-7-release
+ - job: gromacs:clang-7:release:configure
artifacts: true
- - job: build-clang-7-release
+ - job: gromacs:clang-7:release:build
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-test-clang-7-gmxapi:
+gromacs:clang-7:test-gmxapi:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .gmxapi-extra-installs
- .use-clang7
needs:
- job: simple-build
artifacts: false
- - job: build-clang-7-gmxapi
+ - job: gromacs:clang-7:build-gmxapi
except:
variables:
- $GROMACS_RELEASE
-test-clang-7-gmxapi-release:
+gromacs:clang-7:release:test-gmxapi:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .gmxapi-extra-installs
- .use-clang7
stage: release-tests
variables:
BUILD_DIR: release-builds-clang
needs:
- - job: configure-clang-7-gmxapi-release
+ - job: gromacs:clang-7:release:configure-gmxapi
artifacts: true
- - job: build-clang-7-gmxapi-release
+ - job: gromacs:clang-7:release:build-gmxapi
artifacts: true
only:
refs:
variables:
- $GROMACS_RELEASE
-test-clang-8:
+gromacs:clang-8:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-clang8
needs:
- job: simple-build
artifacts: false
- - job: build-clang-8
+ - job: gromacs:clang-8:build
except:
variables:
- $GROMACS_RELEASE
-test-clang-8-release:
+gromacs:clang-8:release:test:
extends:
- - .test-extends-template
+ - .gromacs:base:test
- .use-clang8
stage: release-tests
variables:
BUILD_DIR: release-builds-clang
needs:
- - job: configure-clang-8-release
+ - job: gromacs:clang-8:release:configure
artifacts: true
- - job: build-clang-8-release
+ - job: gromacs:clang-8:release:build
artifacts: true
only:
refs: