CUDA_BASE_VERSION: "10.2"
COMPILER_MAJOR_VERSION: 8
-.clang6-template:
- image: gromacs/ci-clang-6:master
-
-.clang6-gmxapi-template:
- image: gromacs/ci-clang-6-gmxapi:master
-
-.clang7-template:
- image: gromacs/ci-clang-7:master
-
-.clang7-gmxapi-template:
- image: gromacs/ci-clang-7-gmxapi:master
-
-.clang8-template:
- image: gromacs/ci-clang-8:master
-
-.clang8-gmxapi-template:
- image: gromacs/ci-clang-8-gmxapi:master
-
-.clang-before-script-template:
+# Base definition, not to be used directly.
+# Use version-specific `.use-clangX` definitions when defining jobs.
+.use-clang:base:
variables:
- COMPILER_MAJOR_VERSION: 7
- EXTRA_INSTALLS: ""
-
+ 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
- export CCACHE_BASEDIR=${PWD}
- export CCACHE_DIR=${PWD}/ccache
-.build-clang-template:
+.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:
- DEBIAN_FRONTEND: noninteractive
COMPILER_MAJOR_VERSION: 7
- BUILD_DIR: build-clang
- CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=clang-$COMPILER_MAJOR_VERSION -DCMAKE_CXX_COMPILER=clang++-$COMPILER_MAJOR_VERSION
+ extends:
+ - .use-clang:base
+.use-clang8:
+ image: gromacs/ci-clang-8:master
+ variables:
+ COMPILER_MAJOR_VERSION: 8
+ extends:
+ - .use-clang:base
configure-clang-tidy:
extends:
- .configure-clang
- - .clang7-template
+ - .use-clang7
needs:
- job: simple-build
artifacts: false
variables:
BUILD_DIR: build-clang-tidy
- COMPILER_MAJOR_VERSION: 7
CMAKE_EXTRA_OPTIONS: -DCLANG_TIDY=clang-tidy-$COMPILER_MAJOR_VERSION -DGMX_CLANG_TIDY=ON -DGMX_COMPILER_WARNINGS=ON
EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION
except:
build-clang-tidy:
extends:
- .build-clang
- - .clang7-template
+ - .use-clang7
stage: source-check
needs:
- job: simple-build
artifacts: true
variables:
BUILD_DIR: build-clang-tidy
- COMPILER_MAJOR_VERSION: 7
EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION
except:
variables:
extends:
- .binary-build-template
- .variables:default
- - .clang-before-script-template
- - .build-clang-template
- - .clang7-template
+ - .use-clang7
cache: {}
stage: source-check
when: always
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
KUBERNETES_MEMORY_LIMIT: 2Gi
- COMPILER_MAJOR_VERSION: 7
EXTRA_INSTALLS: clang-format-$COMPILER_MAJOR_VERSION
except:
variables:
extends:
- .binary-build-template
- .variables:default
- - .clang-before-script-template
- - .build-clang-template
- - .clang7-template
+ - .use-clang7
cache: {}
stage: source-check
when: always
KUBERNETES_CPU_REQUEST: 1
KUBERNETES_MEMORY_LIMIT: 2Gi
BUILD_DIR: build-docs
- COMPILER_MAJOR_VERSION: 7
except:
variables:
- $GROMACS_RELEASE
.configure-clang:
extends:
- .configure-extends-template
- - .clang-before-script-template
- - .build-clang-template
.configure-clang-release:
extends:
- .configure-release-extends-template
- - .clang-before-script-template
- - .build-clang-template
# For version of clang before 7, we need to always provide the full version
# Use something like this instead in the download script:
configure-clang-6:
extends:
- .configure-clang
- - .clang6-template
+ - .use-clang6
needs:
- job: simple-build
artifacts: false
configure-clang-7:
extends:
- .configure-clang
- - .clang7-template
+ - .use-clang7
needs:
- job: simple-build
artifacts: false
- variables:
- COMPILER_MAJOR_VERSION: 7
except:
variables:
- $GROMACS_RELEASE
configure-clang-7-release:
extends:
- .configure-clang-release
- - .clang7-template
+ - .use-clang7
cache: {}
variables:
- COMPILER_MAJOR_VERSION: 7
RELEASE_BUILD_DIR: release-builds-clang
only:
refs:
extends:
- .configure-clang
- .configure-gmxapi-template
- - .clang7-template
+ - .use-clang7
needs:
- job: simple-build
artifacts: false
- variables:
- COMPILER_MAJOR_VERSION: 7
except:
variables:
- $GROMACS_RELEASE
extends:
- .configure-clang-release
- .configure-gmxapi-template
- - .clang7-template
+ - .use-clang7
cache: {}
variables:
- COMPILER_MAJOR_VERSION: 7
RELEASE_BUILD_DIR: release-builds-clang
only:
refs:
configure-clang-8:
extends:
- .configure-clang
- - .clang8-template
+ - .use-clang8
needs:
- job: simple-build
artifacts: false
- variables:
- COMPILER_MAJOR_VERSION: 8
except:
variables:
- $GROMACS_RELEASE
configure-clang-8-release:
extends:
- .configure-clang-release
- - .clang8-template
+ - .use-clang8
cache: {}
variables:
- COMPILER_MAJOR_VERSION: 8
RELEASE_BUILD_DIR: release-builds-clang
only:
refs:
.build-clang:
extends:
- .build-extends-template
- - .clang-before-script-template
- - .build-clang-template
build-clang-6:
extends:
- .build-clang
- - .clang6-template
+ - .use-clang6
needs:
- job: simple-build
artifacts: false
build-clang-7:
extends:
- .build-clang
- - .clang7-template
+ - .use-clang7
needs:
- job: simple-build
artifacts: false
build-clang-7-release:
extends:
- .build-clang
- - .clang7-template
+ - .use-clang7
stage: release-build
variables:
BUILD_DIR: release-builds-clang
extends:
- .build-clang
- .gmxapi-extra-installs
- - .clang7-template
+ - .use-clang7
needs:
- job: simple-build
artifacts: false
extends:
- .build-clang
- .gmxapi-extra-installs
- - .clang7-template
+ - .use-clang7
stage: release-build
variables:
BUILD_DIR: release-builds-clang
build-clang-8:
extends:
- .build-clang
- - .clang8-template
+ - .use-clang8
needs:
- job: simple-build
artifacts: false
build-clang-8-release:
extends:
- .build-clang
- - .clang8-template
+ - .use-clang8
stage: release-build
variables:
BUILD_DIR: release-builds-clang
.test-clang-template:
variables:
- COMPILER_MAJOR_VERSION: 7
BUILD_DIR: build-clang
.test-clang:
extends:
- .test-extends-template
- - .clang-before-script-template
- .test-clang-template
test-clang-6:
extends:
- .test-clang
- - .clang6-template
+ - .use-clang6
needs:
- job: simple-build
artifacts: false
test-clang-7:
extends:
- .test-clang
- - .clang7-template
+ - .use-clang7
needs:
- job: simple-build
artifacts: false
test-clang-7-release:
extends:
- .test-clang
- - .clang7-template
+ - .use-clang7
stage: release-tests
variables:
BUILD_DIR: release-builds-clang
extends:
- .test-clang
- .gmxapi-extra-installs
- - .clang7-template
+ - .use-clang7
needs:
- job: simple-build
artifacts: false
extends:
- .test-clang
- .gmxapi-extra-installs
- - .clang7-template
+ - .use-clang7
stage: release-tests
variables:
BUILD_DIR: release-builds-clang
test-clang-8:
extends:
- .test-clang
- - .clang8-template
+ - .use-clang8
needs:
- job: simple-build
artifacts: false
test-clang-8-release:
extends:
- .test-clang
- - .clang8-template
+ - .use-clang8
stage: release-tests
variables:
BUILD_DIR: release-builds-clang