Remove support for Intel classic compiler
[alexxy/gromacs.git] / admin / gitlab-ci / global.gitlab-ci.yml
1 # Mix-in job definitions.
2 # The (hidden) job definitions in this file are available to the regular job
3 # definitions in other files because this file is first in the *include* list
4 # in the root `.gitlab-ci.yml` file.
5
6 # Centralized definitions of common job parameter values.
7 # Parameters with many optional configurations may be in separate files.
8 # Refer to the Infrastructure section of the GROMACS Developer Guide.
9
10 .variables:default:
11   variables:
12     KUBERNETES_CPU_LIMIT: 8
13     KUBERNETES_CPU_REQUEST: 4
14     KUBERNETES_MEMORY_REQUEST: 4Gi
15     KUBERNETES_MEMORY_LIMIT: 8Gi
16     KUBERNETES_EXTENDED_RESOURCE_NAME: ""
17     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 0
18     CACHE_FALLBACK_KEY: "$CI_JOB_NAME-$CI_JOB_STAGE-master"
19     BUILD_DIR: build
20     INSTALL_DIR: install
21     CMAKE_GMXAPI_OPTIONS: ""
22
23 # Our generic before_script to install dependencies and prepare the ccache directory.
24 .before_script:default:
25   before_script:
26     - mkdir -p ccache
27     - export CCACHE_BASEDIR=${PWD}
28     - export CCACHE_DIR=${PWD}/ccache
29
30 # Behavioral templates
31
32 # Use a persistent compiler cache to speed up rebuilds for a single job.
33 .use-ccache:
34   cache:
35     key: "$CI_JOB_NAME-$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG"
36     paths:
37       - ccache/
38
39 # Tool chains
40
41 .use-cuda:
42   variables:
43     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
44     CMAKE_GPU_OPTIONS: -DGMX_GPU=CUDA
45
46 .use-mpi:
47   variables:
48     CMAKE_MPI_OPTIONS: "-DGMX_MPI=ON"
49
50 .use-opencl:
51   variables:
52     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
53     CMAKE_GPU_OPTIONS: -DGMX_GPU=OpenCL
54
55 .use-sycl:
56   variables:
57     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
58     CMAKE_GPU_OPTIONS: -DGMX_GPU=SYCL
59
60 # Base definition for using gcc.
61 .use-gcc:base:
62   variables:
63     CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=gcc-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=g++-$COMPILER_MAJOR_VERSION
64   before_script:
65     - mkdir -p ccache
66     - export CCACHE_BASEDIR=${PWD}
67     - export CCACHE_DIR=${PWD}/ccache
68
69 # Base definition for using clang.
70 .use-clang:base:
71   variables:
72     CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=clang-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=clang++-$COMPILER_MAJOR_VERSION
73   before_script:
74     - mkdir -p ccache
75     - export CCACHE_BASEDIR=${PWD}
76     - export CCACHE_DIR=${PWD}/ccache
77     - export ASAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer
78
79 # Base definition for using oneAPI.
80 .use-oneapi:base:
81   variables:
82     # Use the HPC clang-based compiler variants so that OpenMP is active
83     CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DCMAKE_INCLUDE_PATH=/opt/intel/oneapi/compiler/latest/linux/include/sycl -DCMAKE_PREFIX_PATH=/opt/intel/oneapi/compiler/latest/linux
84     CMAKE_EXTRA_OPTIONS: -DGMX_FFT_LIBRARY=mkl
85   before_script:
86     # Necessary to override gitlab default 'set -e' which breaks Intel's
87     # setvar.sh script
88     - set +e
89     - source /opt/intel/oneapi/setvars.sh
90     - set -e
91     - mkdir -p ccache
92     - export CCACHE_BASEDIR=${PWD}
93     - export CCACHE_DIR=${PWD}/ccache