1 # Mix-in job definitions.
3 # Centralized definitions of common job parameter values.
7 KUBERNETES_CPU_LIMIT: 8
8 KUBERNETES_CPU_REQUEST: 4
9 KUBERNETES_MEMORY_LIMIT: 8Gi
10 KUBERNETES_EXTENDED_RESOURCE_NAME: ""
11 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 0
12 CACHE_FALLBACK_KEY: "$CI_JOB_NAME-$CI_JOB_STAGE-master"
15 CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=ON"
16 EXTRA_INSTALLS: "python3-dev python3-setuptools python3-pip python3-pytest"
17 # TODO: Get these from updated Docker images.
19 # Our generic before_script to install dependencies and prepare the ccache directory.
20 .before_script:default:
22 - echo $EXTRA_INSTALLS
23 - time apt-get -qq update
24 - time apt-get -qqy --no-install-suggests --no-install-recommends install
27 - export CCACHE_BASEDIR=${PWD}
28 - export CCACHE_DIR=${PWD}/ccache
30 # Rule to run a job only in nightly release-preparation pipelines.
31 # Checks if the GROMACS_RELEASE variable was set (typically through the GitLab web interface).
32 # Excludes merge_requests
33 # TODO: Update to *rules* syntax.
34 .rules:nightly-only-for-release:
42 # Jobs that run on schedules, but not for merge requests or when GROMACS_RELEASE
44 .rules:nightly-not-for-release:
52 # Jobs that run for merge requests and schedules, but not when GROMACS_RELEASE
54 .rules:not-for-release:
65 # Behavioral templates
67 # Use a persistent compiler cache to speed up rebuilds for a single job.
70 key: "$CI_JOB_NAME-$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG"
78 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
81 CMAKE_EXTRA_OPTIONS: -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/
82 CMAKE_GPU_OPTIONS: -DGMX_GPU=ON
84 # Base definition, not to be used directly.
85 # Use version-specific `.use-gccX` definitions when defining jobs.
89 CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=gcc-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=g++-$COMPILER_MAJOR_VERSION
91 - echo $EXTRA_INSTALLS
92 - time apt-get -qq update
93 - time apt-get -qqy --no-install-suggests --no-install-recommends install
96 - export CCACHE_BASEDIR=${PWD}
97 - export CCACHE_DIR=${PWD}/ccache
100 image: gromacs/ci-gcc-7:master
102 COMPILER_MAJOR_VERSION: 7
107 image: gromacs/ci-gcc-8:master
109 COMPILER_MAJOR_VERSION: 8
114 image: gromacs/ci-gcc-8-cuda-10.2:master
116 CUDA_BASE_VERSION: "10.2"
117 COMPILER_MAJOR_VERSION: 8
119 # Base definition, not to be used directly.
120 # Use version-specific `.use-clangX` definitions when defining jobs.
123 DEBIAN_FRONTEND: noninteractive
124 BUILD_DIR: build-clang
125 CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=clang-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=clang++-$COMPILER_MAJOR_VERSION
127 - echo $EXTRA_INSTALLS
128 - time apt-get -qq update
129 - time apt-get -qqy --no-install-suggests --no-install-recommends install
132 - export CCACHE_BASEDIR=${PWD}
133 - export CCACHE_DIR=${PWD}/ccache
136 image: gromacs/ci-clang-6:master
138 COMPILER_MAJOR_VERSION: 6
143 image: gromacs/ci-clang-7:master
145 COMPILER_MAJOR_VERSION: 7
150 image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
152 COMPILER_MAJOR_VERSION: 8