BUILD_DIR: build
INSTALL_DIR: install
CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=ON"
- EXTRA_INSTALLS: "python3-dev python3-setuptools python3-pip python3-pytest"
# TODO: Get these from updated Docker images.
# Our generic before_script to install dependencies and prepare the ccache directory.
.before_script:default:
before_script:
- - echo $EXTRA_INSTALLS
- - time apt-get -qq update
- - time apt-get -qqy --no-install-suggests --no-install-recommends install
- $EXTRA_INSTALLS
- mkdir -p ccache
- export CCACHE_BASEDIR=${PWD}
- export CCACHE_DIR=${PWD}/ccache
-# Jobs that run for merge requests and schedules, but not when GROMACS_RELEASE
-# is set. Includes non-gromacs projects. Note that jobs using this rule are
+# Jobs that run for new commits and pipelines triggered by schedules or
+# through the web interface, unless GROMACS_RELEASE is set. Excluded from
+# extra pipelines generated by merge request events.
+# Includes non-gromacs projects. Note that jobs using this rule are
# eligible to run on non-gromacs project infrastructure, and should therefore
# override the default *tag* parameter to exclude tags specific to the GROMACS
# GitLab Runner infrastructure. I.e. in the job definition, set `tags: []`
-.rules:basic:
+.rules:basic-push:
rules:
- if: '$GROMACS_RELEASE'
when: never
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- when: always
+ when: never
# Jobs that run for merge requests and schedules, but not when GROMACS_RELEASE
# is set. Excludes non-gromacs projects.
-.rules:not-for-release:
+.rules:merge-requests:
rules:
- if: '$CI_PROJECT_NAMESPACE != "gromacs"'
when: never
- if: '$CI_PIPELINE_SOURCE == "web"'
when: always
- if: '$CI_PIPELINE_SOURCE == "push"'
- when: always
+ when: never
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
.use-cuda:
variables:
CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
- CUDA_BASE_VERSION: ""
- BUILD_DIR: build-cuda
- CMAKE_EXTRA_OPTIONS: -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/
- CMAKE_GPU_OPTIONS: -DGMX_GPU=ON
+ CMAKE_GPU_OPTIONS: -DGMX_GPU=ON -DGMX_USE_CUDA=ON
+
+.use-mpi:
+ variables:
+ CMAKE_MPI_OPTIONS: "-DGMX_MPI=ON"
+
+.use-opencl:
+ variables:
+ CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
+ CMAKE_GPU_OPTIONS: -DGMX_GPU=ON -DGMX_USE_OPENCL=ON
-# Base definition, not to be used directly.
-# Use version-specific `.use-gccX` definitions when defining jobs.
+# Base definition for using gcc.
.use-gcc:base:
variables:
- BUILD_DIR: build-gcc
CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=gcc-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=g++-$COMPILER_MAJOR_VERSION
before_script:
- - echo $EXTRA_INSTALLS
- - time apt-get -qq update
- - time apt-get -qqy --no-install-suggests --no-install-recommends install
- $EXTRA_INSTALLS
- mkdir -p ccache
- export CCACHE_BASEDIR=${PWD}
- export CCACHE_DIR=${PWD}/ccache
-.use-gcc7:
- image: gromacs/ci-gcc-7:master
- variables:
- COMPILER_MAJOR_VERSION: 7
- extends:
- - .use-gcc:base
-
-.use-gcc8:
- image: gromacs/ci-gcc-8:master
- variables:
- COMPILER_MAJOR_VERSION: 8
- extends:
- - .use-gcc:base
-
-.use-gcc8:cuda-10.2:
- image: gromacs/ci-gcc-8-cuda-10.2:master
- variables:
- CUDA_BASE_VERSION: "10.2"
- COMPILER_MAJOR_VERSION: 8
-
-# Base definition, not to be used directly.
-# Use version-specific `.use-clangX` definitions when defining jobs.
+# Base definition for using clang.
.use-clang:base:
variables:
- DEBIAN_FRONTEND: noninteractive
- BUILD_DIR: build-clang
CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=clang-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=clang++-$COMPILER_MAJOR_VERSION
before_script:
- - echo $EXTRA_INSTALLS
- - time apt-get -qq update
- - time apt-get -qqy --no-install-suggests --no-install-recommends install
- $EXTRA_INSTALLS
- mkdir -p ccache
- export CCACHE_BASEDIR=${PWD}
- export CCACHE_DIR=${PWD}/ccache
+ - export ASAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer
-.use-clang6:
- image: gromacs/ci-clang-6:master
- variables:
- COMPILER_MAJOR_VERSION: 6
- extends:
- - .use-clang:base
-
-.use-clang7:
- image: gromacs/ci-clang-7:master
- variables:
- COMPILER_MAJOR_VERSION: 7
- extends:
- - .use-clang:base
-
-.use-clang8:
- image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
- variables:
- COMPILER_MAJOR_VERSION: 8
- extends:
- - .use-clang:base
-
-.use-clang9:
- image: gromacs/cmake-3.13.0-llvm-9-intelopencl-openmpi:master
- variables:
- COMPILER_MAJOR_VERSION: 9
- extends:
- - .use-clang:base