bc5a1b3091546fa9253792bb4222fbcd4c11c653
[alexxy/gromacs.git] / admin / gitlab-ci / global.gitlab-ci.yml
1 .variables:default:
2   variables:
3     KUBERNETES_CPU_LIMIT: 8
4     KUBERNETES_CPU_REQUEST: 4
5     KUBERNETES_MEMORY_LIMIT: 8Gi
6     KUBERNETES_EXTENDED_RESOURCE_NAME: ""
7     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 0
8     CACHE_FALLBACK_KEY: "$CI_JOB_NAME-$CI_JOB_STAGE-master"
9     BUILD_DIR: build
10     INSTALL_DIR: install
11
12 .build-cache-template:
13   cache:
14     key: "$CI_JOB_NAME-$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG"
15     paths:
16       - ccache/
17
18 .pull-cache-template:
19   cache:
20     key: "$CI_JOB_NAME-$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG"
21     # Read but don't update the cache
22     policy: pull
23
24 .no-cache-template:
25   cache: {}
26
27
28 .gmxapi-extra-installs:
29   variables:
30     EXTRA_INSTALLS: python3-dev python3-networkx python3-setuptools python3-mpi4py python3-numpy python3-pip python3-pytest
31
32 .configure-gmxapi-template:
33   extends:
34     - .gmxapi-extra-installs
35   variables:
36     CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=ON"
37
38 # Tool chains
39
40 .cuda-template:
41   variables:
42     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
43     CUDA_BASE_VERSION: ""
44     BUILD_DIR: build-cuda
45     CMAKE_EXTRA_OPTIONS: -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/
46     CMAKE_GPU_OPTIONS: -DGMX_GPU=ON
47
48 .gcc5-template:
49   image: gromacs/ci-gcc-5:master
50
51 .gcc5-gmxapi-template:
52   image: gromacs/ci-gcc-5-gmxapi:master
53
54 .gcc6-template:
55   image: gromacs/ci-gcc-6:master
56
57 .gcc6-gmxapi-template:
58   image: gromacs/ci-gcc-6-gmxapi:master
59
60 .gcc7-template:
61   image: gromacs/ci-gcc-7:master
62
63 .gcc7-gmxapi-template:
64   image: gromacs/ci-gcc-7-gmxapi:master
65
66 .gcc8-template:
67   image: gromacs/ci-gcc-8:master
68
69 .gcc-8-cuda-10.2-template:
70   image: gromacs/ci-gcc-8-cuda-10.2:master
71   variables:
72     CUDA_BASE_VERSION: "10.2"
73     COMPILER_MAJOR_VERSION: 8
74
75 .gcc8-gmxapi-template:
76   image: gromacs/ci-gcc-8-gmxapi:master
77
78 .gcc-before-script-template:
79   variables:
80     COMPILER_MAJOR_VERSION: 7
81     EXTRA_INSTALLS: ""
82
83   before_script:
84     - echo $EXTRA_INSTALLS
85     - time apt-get -qq update
86     - time apt-get -qqy --no-install-suggests --no-install-recommends install
87       $EXTRA_INSTALLS
88     - mkdir -p ccache
89     - export CCACHE_BASEDIR=${PWD}
90     - export CCACHE_DIR=${PWD}/ccache
91
92 .build-gcc-template:
93   variables:
94     COMPILER_MAJOR_VERSION: 7
95     BUILD_DIR: build-gcc
96     CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=gcc-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=g++-$COMPILER_MAJOR_VERSION
97
98 .clang6-template:
99   image: gromacs/ci-clang-6:master
100
101 .clang6-gmxapi-template:
102   image: gromacs/ci-clang-6-gmxapi:master
103
104 .clang7-template:
105   image: gromacs/ci-clang-7:master
106
107 .clang7-gmxapi-template:
108   image: gromacs/ci-clang-7-gmxapi:master
109
110 .clang8-template:
111   image: gromacs/ci-clang-8:master
112
113 .clang8-gmxapi-template:
114   image: gromacs/ci-clang-8-gmxapi:master
115
116 .clang-before-script-template:
117   variables:
118     COMPILER_MAJOR_VERSION: 7
119     EXTRA_INSTALLS: ""
120
121   before_script:
122     - echo $EXTRA_INSTALLS
123     - time apt-get -qq update
124     - time apt-get -qqy --no-install-suggests --no-install-recommends install
125       $EXTRA_INSTALLS
126     - mkdir -p ccache
127     - export CCACHE_BASEDIR=${PWD}
128     - export CCACHE_DIR=${PWD}/ccache
129
130 .build-clang-template:
131   variables:
132     DEBIAN_FRONTEND: noninteractive
133     COMPILER_MAJOR_VERSION: 7
134     BUILD_DIR: build-clang
135     CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=clang-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=clang++-$COMPILER_MAJOR_VERSION
136