From 50513eb3f68432f7cfd532d2c2ba8957a1f40446 Mon Sep 17 00:00:00 2001 From: Paul Bauer Date: Mon, 13 Apr 2020 14:51:18 +0000 Subject: [PATCH] The ugliest hack to fix rebase issues ever Change-Id: I1b8202c4f9f36d03d29679850fd2e0672c823968 --- admin/gitlab-ci/archive.gitlab-ci.yml | 13 +- admin/gitlab-ci/documentation.gitlab-ci.yml | 42 +- admin/gitlab-ci/global.gitlab-ci.yml | 98 +-- admin/gitlab-ci/gromacs.gitlab-ci.yml | 642 ++++++++++-------- admin/gitlab-ci/lint.gitlab-ci.yml | 50 +- admin/gitlab-ci/python-gmxapi.gitlab-ci.yml | 6 +- .../sample_restraint-regression.gitlab-ci.yml | 3 +- .../gitlab-ci/sample_restraint.gitlab-ci.yml | 3 +- 8 files changed, 447 insertions(+), 410 deletions(-) diff --git a/admin/gitlab-ci/archive.gitlab-ci.yml b/admin/gitlab-ci/archive.gitlab-ci.yml index 1d009808ee..4c69403641 100644 --- a/admin/gitlab-ci/archive.gitlab-ci.yml +++ b/admin/gitlab-ci/archive.gitlab-ci.yml @@ -27,7 +27,7 @@ prepare-release-version: regressiontests:prepare: extends: - .variables:default - - .rules:not-for-release + - .rules:merge-requests cache: {} image: biophysics/gcc-gromacs stage: configure-build @@ -74,7 +74,6 @@ regressiontests:package: KUBERNETES_MEMORY_LIMIT: 2Gi needs: - job: prepare-release-version - artifacts: true script: - VERSION=`cat version.json | python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"` @@ -98,7 +97,7 @@ regressiontests:package: - git clean -ffdxq - git gc - git archive -o $REGTESTNAME.tar.gz --prefix $REGTESTNAME/ -9 HEAD - - cp $REGTESTNAME.tar.gz gmx-regressiontests.tar.gz + - git archive -o gmx-regressiontests.tar.gz --prefix regressiontests/ -9 HEAD - mv $REGTESTNAME.tar.gz gmx-regressiontests.tar.gz .. - echo "Build regressiontests for branch $REGTESTBRANCH" - cd .. @@ -136,13 +135,12 @@ archive:configure:release: # manually hacking things. TODO: #3361 .archive:build: extends: + - .variables:default - .gromacs:base:build - .use-ccache - - .variables:default - .before_script:default - .docs:build - # Dockerfiles are from dockerhub, user eriklindahl - image: gromacs/ci-docs-clang:master + image: gromacs/ci-docs-llvm:master variables: KUBERNETES_CPU_LIMIT: 4 KUBERNETES_CPU_REQUEST: 2 @@ -191,7 +189,6 @@ archive:build: stage: nightly-build needs: - job: archive:configure:nightly - artifacts: true variables: BUILD_DIR: build-package @@ -202,7 +199,6 @@ archive:package: stage: release-package needs: - job: archive:configure:release - artifacts: true variables: BUILD_DIR: build-package @@ -253,7 +249,6 @@ archive:nightly-webpage: - job: linkchecker artifacts: false - job: webpage:build - artifacts: true variables: BUILD_DIR: build-docs script: diff --git a/admin/gitlab-ci/documentation.gitlab-ci.yml b/admin/gitlab-ci/documentation.gitlab-ci.yml index 61d1deda41..5061edd4a3 100644 --- a/admin/gitlab-ci/documentation.gitlab-ci.yml +++ b/admin/gitlab-ci/documentation.gitlab-ci.yml @@ -2,13 +2,13 @@ .docs:configure: extends: - - .gromacs:base:configure - .variables:default + - .gromacs:base:configure - .before_script:default - # Built by admin/dockerfiles/ci-docs-clang - # TODO this should be organized more like the current documentation.py script - image: gromacs/ci-docs-clang:master + # TODO (#3480) this should be organized more like the current documentation.py script + image: gromacs/ci-docs-llvm:master stage: configure-build + cache: {} variables: KUBERNETES_CPU_LIMIT: 1 KUBERNETES_CPU_REQUEST: 1 @@ -67,13 +67,12 @@ .docs:configure:release: extends: - - .gromacs:base:configure - .variables:default + - .gromacs:base:configure - .before_script:default - .rules:nightly-only-for-release - # Built by admin/dockerfiles/ci-docs-clang - # TODO this should be organized more like the current documentation.py script - image: gromacs/ci-docs-clang:master + # TODO (#3480) this should be organized more like the current documentation.py script + image: gromacs/ci-docs-llvm:master stage: release-configure cache: {} variables: @@ -176,15 +175,15 @@ docs:configure: extends: - .docs:configure - - .rules:not-for-release + - .rules:basic-push + tags: [] variables: BUILD_DIR: build-docs CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_BUILD_MANUAL=on .docs:build: - # Built by admin/dockerfiles/ci-docs-clang - # TODO this should be organized more like the current documentation.py script - image: gromacs/ci-docs-clang:master + # TODO (#3480) this should be organized more like the current documentation.py script + image: gromacs/ci-docs-llvm:master script: - cd $BUILD_DIR - cmake --build . --target gmx -- -j8 @@ -198,16 +197,16 @@ docs:configure: docs:build: extends: - - .gromacs:base:build - .variables:default + - .gromacs:base:build - .use-ccache - .docs:build - .before_script:default - - .rules:not-for-release + - .rules:basic-push stage: documentation + tags: [] needs: - job: docs:configure - artifacts: true variables: BUILD_DIR: build-docs @@ -221,12 +220,12 @@ docs:build: # TODO use a feature from gitlab runner instead of using pipefail to get timings for the job .webpage:build: extends: - - .gromacs:base:build - .variables:default + - .gromacs:base:build - .before_script:default - # Built by admin/dockerfiles/ci-docs-clang - # TODO this should be organized more like the current documentation.py script - image: gromacs/ci-docs-clang:master + # TODO (#3480) this should be organized more like the current documentation.py script + image: gromacs/ci-docs-llvm:master + cache: {} variables: KUBERNETES_CPU_LIMIT: 4 KUBERNETES_CPU_REQUEST: 2 @@ -260,11 +259,11 @@ docs:build: webpage:build: extends: - .webpage:build - - .rules:not-for-release + - .rules:basic-push stage: post-test + tags: [] needs: - job: docs:build - artifacts: true - job: check-source artifacts: false variables: @@ -294,7 +293,6 @@ webpage:dependencies: stage: release-build needs: - job: webpage:configure - artifacts: true variables: BUILD_DIR: release-doc-builds diff --git a/admin/gitlab-ci/global.gitlab-ci.yml b/admin/gitlab-ci/global.gitlab-ci.yml index 2ac489e83a..e86f75bd57 100644 --- a/admin/gitlab-ci/global.gitlab-ci.yml +++ b/admin/gitlab-ci/global.gitlab-ci.yml @@ -13,26 +13,23 @@ 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 @@ -43,11 +40,11 @@ - 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 @@ -56,7 +53,7 @@ - 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"' @@ -100,86 +97,33 @@ .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 diff --git a/admin/gitlab-ci/gromacs.gitlab-ci.yml b/admin/gitlab-ci/gromacs.gitlab-ci.yml index 8209e2125e..93dedc8154 100644 --- a/admin/gitlab-ci/gromacs.gitlab-ci.yml +++ b/admin/gitlab-ci/gromacs.gitlab-ci.yml @@ -3,24 +3,24 @@ # Initial build that always needs to pass before follow-up stages run simple-build: extends: - - .use-ccache - .variables:default - - .use-gcc7 - - .rules:basic + - .use-ccache + - .use-clang:base + - .rules:basic-push stage: pre-build + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master tags: [] variables: KUBERNETES_CPU_LIMIT: 8 KUBERNETES_CPU_REQUEST: 4 KUBERNETES_MEMORY_LIMIT: 8Gi - CMAKE_COMPILER_SCRIPT: "" - CMAKE_EXTRA_OPTIONS: "" CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None" CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON" CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF" CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug" CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF" CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF" + COMPILER_MAJOR_VERSION: 9 BUILD_DIR: simple-build script: - echo $CMAKE_COMPILER_SCRIPT @@ -82,8 +82,8 @@ simple-build: .gromacs:base:configure: extends: - .variables:default - cache: {} stage: configure-build + cache: {} variables: KUBERNETES_CPU_LIMIT: 1 KUBERNETES_CPU_REQUEST: 1 @@ -134,8 +134,8 @@ simple-build: .gromacs:base:release:configure: extends: - .variables:default - cache: {} stage: release-configure + cache: {} variables: KUBERNETES_CPU_LIMIT: 1 KUBERNETES_CPU_REQUEST: 1 @@ -147,6 +147,7 @@ simple-build: CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF" CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert" CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF" + CMAKE_REGRESSIONTEST_OPTIONS: "-DREGRESSIONTEST_PATH=../\\$RELEASE_REGRESSIONTESTS" RELEASE_BUILD_DIR: release-builds RELEASE_SOURCE: release-source-from-tarball RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball @@ -201,8 +202,8 @@ simple-build: $CMAKE_BUILD_TYPE_OPTIONS $CMAKE_GPU_OPTIONS $CMAKE_GMXAPI_OPTIONS - "-DREGRESSIONTEST_PATH=../$RELEASE_REGRESSIONTESTS" - -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON + $CMAKE_REGRESSIONTEST_OPTIONS + -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR 2>&1 | tee cmakeLog.log - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi @@ -219,144 +220,149 @@ simple-build: gromacs:gcc-7:configure: extends: - .gromacs:base:configure - - .use-gcc7 - - .rules:not-for-release + - .use-gcc:base + - .rules:merge-requests + image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi:master + variables: + CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256" + CMAKE_GPU_OPTIONS: "-DGMX_GPU=ON -DGMX_USE_OPENCL=ON" + COMPILER_MAJOR_VERSION: 7 dependencies: [] -gromacs:gcc-7:release:configure: +gromacs:gcc-8:configure: extends: - - .gromacs:base:release:configure - - .use-gcc7 - - .rules:nightly-only-for-release - cache: {} + - .gromacs:base:configure + - .use-gcc:base + - .use-opencl + - .rules:merge-requests + image: gromacs/cmake-3.15.7-gcc-8-cuda-10.1-nvidiaopencl-clfft-openmpi:master + dependencies: [] variables: - RELEASE_BUILD_DIR: release-builds-gcc - dependencies: - - archive:package - - regressiontests:package - - prepare-release-version + CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1" + COMPILER_MAJOR_VERSION: 8 + CMAKE_EXTRA_OPTIONS: "-DGMX_EXTERNAL_CLFFT=ON" -gromacs:gcc-7-simd-sse41:configure: +gromacs:clang-TSAN:configure: extends: - .gromacs:base:configure - - .use-gcc7 - - .rules:not-for-release + - .use-clang:base + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master dependencies: [] variables: - CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1" + COMPILER_MAJOR_VERSION: 8 + CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=TSAN" -gromacs:gcc-7-double:configure: +gromacs:clang-8:configure: extends: - .gromacs:base:configure - - .use-gcc7 - - .rules:not-for-release + - .use-clang:base + - .rules:merge-requests + image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 dependencies: [] variables: - CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON + COMPILER_MAJOR_VERSION: 8 -gromacs:gcc-7-double:release:configure: +gromacs:clang-9:configure: extends: - - .gromacs:base:release:configure - - .use-gcc7 - - .rules:nightly-only-for-release - cache: {} + - .gromacs:base:configure + - .use-clang:base + - .rules:merge-requests + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master variables: + COMPILER_MAJOR_VERSION: 9 CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON - RELEASE_BUILD_DIR: release-builds-gcc - dependencies: - - archive:package - - regressiontests:package - - prepare-release-version + dependencies: [] -gromacs:gcc-8:configure: +gromacs:clang-static-analyzer:configure: extends: - .gromacs:base:configure - - .use-gcc8 - - .rules:not-for-release + - .use-clang:base + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master dependencies: [] + variables: + CMAKE_COMPILER_SCRIPT: "-DCMAKE_CXX_COMPILER=/usr/local/libexec/c++-analyzer -DCMAKE_C_COMPILER=gcc" + CMAKE_EXTRA_OPTIONS: "-DGMX_CLANG_ANALYZER=ON -DGMX_OPENMP=OFF -DGMX_USE_RDTSCP=OFF -DGMX_FFT_LIBRARY=fftpack -DGMX_DEVELOPER_BUILD=ON" + CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None" + +gromacs:clang-ASAN:configure: + extends: + - .gromacs:base:configure + - .use-clang:base + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master + dependencies: [] + variables: + COMPILER_MAJOR_VERSION: 8 + CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=ASAN" gromacs:gcc-8:release:configure: extends: - .gromacs:base:release:configure - - .use-gcc8 + - .use-gcc:base + - .use-mpi + - .use-cuda - .rules:nightly-only-for-release - cache: {} + image: gromacs/cmake-3.15.7-gcc-8-cuda-10.1-nvidiaopencl-clfft-openmpi:master variables: + COMPILER_MAJOR_VERSION: 8 RELEASE_BUILD_DIR: release-builds-gcc + CMAKE_EXTRA_OPTIONS: "-DGMX_BUILD_MDRUN_ONLY=ON" + CMAKE_BUILD_TYPE_OPTIONS : "-DCMAKE_BUILD_TYPE=RelWithDebug" + CMAKE_REGRESSIONTEST_OPTIONS: "" dependencies: - archive:package - regressiontests:package - prepare-release-version -gromacs:gcc-8-cuda-10.2:configure: - extends: - - .gromacs:base:configure - - .use-cuda - - .use-gcc8:cuda-10.2 - - .rules:not-for-release - variables: - CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF" - # TODO: Enable GMX_PYTHON_PACKAGE when dependencies are in Docker image. - dependencies: [] - -# For version of clang before 7, we need to always provide the full version -# Use something like this instead in the download script: -# APT_COMPILER_VERSION=$(($COMPILER_MAJOR_VERSION < 7 ? "${COMPILER_MAJOR_VERSION}.0" : $COMPILER_MAJOR_VERSION)) -gromacs:clang-6:configure: +gromacs:gcc-7:release:configure: extends: - - .gromacs:base:configure - - .use-clang6 - - .rules:not-for-release - dependencies: [] + - .gromacs:base:release:configure + - .use-gcc:base + - .rules:nightly-only-for-release + image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi:master variables: - COMPILER_MAJOR_VERSION: "6.0" - CMAKE_MPI_OPTIONS: -DGMX_OPENMP=OFF - -gromacs:clang-7:configure: - extends: - - .gromacs:base:configure - - .use-clang7 - - .rules:not-for-release - dependencies: [] + COMPILER_MAJOR_VERSION: 7 + RELEASE_BUILD_DIR: release-builds-gcc + CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert" + dependencies: + - archive:package + - regressiontests:package + - prepare-release-version -gromacs:clang-7:release:configure: +gromacs:clang-9:release:configure: extends: - .gromacs:base:release:configure - - .use-clang7 + - .use-clang:base + - .use-mpi - .rules:nightly-only-for-release - cache: {} + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master variables: + COMPILER_MAJOR_VERSION: 9 RELEASE_BUILD_DIR: release-builds-clang + CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=ON" + CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert" dependencies: - archive:package - regressiontests:package - prepare-release-version -gromacs:clang-8:configure: - extends: - - .gromacs:base:configure - - .use-clang8 - - .rules:not-for-release - dependencies: [] - gromacs:clang-8:release:configure: extends: - .gromacs:base:release:configure - - .use-clang8 + - .use-clang:base + - .use-cuda - .rules:nightly-only-for-release - cache: {} + image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi:master variables: + COMPILER_MAJOR_VERSION: 8 RELEASE_BUILD_DIR: release-builds-clang - dependencies: - - archive:package - - regressiontests:package - - prepare-release-version + CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithDebug" # Jobs running during build stage .gromacs:base:build: - # Dockerfiles are from dockerhub, user eriklindahl - # image in admin/dockerimages/ci-docs-py27 stage: build script: - cd $BUILD_DIR @@ -374,364 +380,438 @@ gromacs:clang-8:release:configure: - $BUILD_DIR - $INSTALL_DIR/ +.gromacs:static-analyzer-build: + stage: build + script: + - cd $BUILD_DIR + - scan-build -o scan_html cmake --build . -- -j8 2>&1 | tee buildLogFile.log + - awk '/warning/,/warning.*generated|^$/' buildLogFile.log + | grep -v "CMake" | tee buildErrors.log || true + - grep "cannot be built" buildLogFile.log | tee -a buildErrors.log || true + - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi + - cd .. + artifacts: + when: always + paths: + - $BUILD_DIR/scan_html + gromacs:gcc-7:build: extends: + - .variables:default - .gromacs:base:build + - .before_script:default - .use-ccache - - .variables:default - - .use-gcc7 - - .rules:not-for-release + - .rules:merge-requests + image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi:master needs: - job: gromacs:gcc-7:configure artifacts: true -gromacs:gcc-7:release:build: +gromacs:gcc-8:build: extends: + - .variables:default - .gromacs:base:build + - .before_script:default - .use-ccache - - .variables:default - - .use-gcc7 - - .rules:nightly-only-for-release - stage: release-build - variables: - BUILD_DIR: release-builds-gcc + - .rules:merge-requests + image: gromacs/cmake-3.15.7-gcc-8-cuda-10.1-nvidiaopencl-clfft-openmpi:master needs: - - job: gromacs:gcc-7:release:configure - artifacts: true + - job: gromacs:gcc-8:configure -gromacs:gcc-7-simd-sse41:build: +gromacs:clang-TSAN:build: extends: + - .variables:default - .gromacs:base:build + - .use-clang:base - .use-ccache - - .variables:default - - .use-gcc7 - - .rules:not-for-release + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master needs: - - job: gromacs:gcc-7-simd-sse41:configure - artifacts: true + - job: gromacs:clang-TSAN:configure -gromacs:gcc-7-double:build: +gromacs:clang-ASAN:build: extends: + - .variables:default - .gromacs:base:build + - .use-clang:base - .use-ccache + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master + needs: + - job: gromacs:clang-ASAN:configure + +gromacs:clang-static-analyzer:build: + extends: - .variables:default - - .use-gcc7 - - .rules:not-for-release + - .gromacs:static-analyzer-build + - .use-clang:base + - .use-ccache + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master needs: - - job: gromacs:gcc-7-double:configure - artifacts: true + - job: gromacs:clang-static-analyzer:configure -gromacs:gcc-7-double:release:build: +gromacs:clang-8:build: extends: + - .variables:default - .gromacs:base:build + - .before_script:default - .use-ccache - - .variables:default - - .use-gcc7 - - .rules:nightly-only-for-release - stage: release-build - variables: - BUILD_DIR: release-builds-gcc + - .rules:merge-requests + image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 needs: - - job: gromacs:gcc-7-double:release:configure - artifacts: true + - job: gromacs:clang-8:configure -gromacs:gcc-8:build: +gromacs:clang-9:build: extends: + - .variables:default - .gromacs:base:build + - .before_script:default - .use-ccache - - .variables:default - - .use-gcc8 - - .rules:not-for-release + - .rules:merge-requests + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master needs: - - job: gromacs:gcc-8:configure - artifacts: true + - job: gromacs:clang-9:configure gromacs:gcc-8:release:build: extends: + - .variables:default - .gromacs:base:build + - .before_script:default - .use-ccache - - .variables:default - - .use-gcc8 - .rules:nightly-only-for-release stage: release-build variables: BUILD_DIR: release-builds-gcc + image: gromacs/cmake-3.15.7-gcc-8-cuda-10.1-nvidiaopencl-clfft-openmpi:master needs: - job: gromacs:gcc-8:release:configure - artifacts: true -gromacs:gcc-8-cuda-10.2:build: +gromacs:gcc-7:release:build: extends: - - .gromacs:base:build - - .use-ccache - .variables:default - - .use-cuda - - .use-gcc8:cuda-10.2 - - .rules:not-for-release - variables: - CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF" - # TODO: Enable GMX_PYTHON_PACKAGE when dependencies are in Docker image. - needs: - - job: gromacs:gcc-8-cuda-10.2:configure - artifacts: true - -gromacs:clang-6:build: - extends: - .gromacs:base:build + - .before_script:default - .use-ccache - - .variables:default - - .use-clang6 - - .rules:not-for-release + - .rules:nightly-only-for-release + stage: release-build + variables: + BUILD_DIR: release-builds-gcc + image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi:master needs: - - job: gromacs:clang-6:configure - artifacts: true + - job: gromacs:gcc-7:release:configure -gromacs:clang-7:build: +gromacs:clang-9:release:build: extends: - - .gromacs:base:build - - .use-ccache - .variables:default - - .use-clang7 - - .rules:not-for-release - needs: - - job: gromacs:clang-7:configure - artifacts: true - -gromacs:clang-7:release:build: - extends: - .gromacs:base:build + - .before_script:default - .use-ccache - - .variables:default - - .use-clang7 - .rules:nightly-only-for-release stage: release-build variables: BUILD_DIR: release-builds-clang + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master needs: - - job: gromacs:clang-7:release:configure - artifacts: true - -gromacs:clang-8:build: - extends: - - .gromacs:base:build - - .use-ccache - - .variables:default - - .use-clang8 - - .rules:not-for-release - needs: - - job: gromacs:clang-8:configure - artifacts: true + - job: gromacs:clang-9:release:configure gromacs:clang-8:release:build: extends: + - .variables:default - .gromacs:base:build + - .before_script:default - .use-ccache - - .variables:default - - .use-clang8 - .rules:nightly-only-for-release stage: release-build variables: BUILD_DIR: release-builds-clang + image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi:master needs: - job: gromacs:clang-8:release:configure - artifacts: true # Jobs running during test stage .gromacs:base:test: extends: - .variables:default - variables: - REGRESSIONTEST_TOTAL_RANK_NUMBER: 4 - REGRESSIONTEST_OMP_RANK_NUMBER: 2 - REGRESSIONTEST_PME_RANK_NUMBER: 1 - REGRESSIONTEST_MPI_RUN_COMMAND: "" - REGRESSIONTEST_DOUBLE: "" stage: test + cache: {} retry: - max: 2 + max: 1 + variables: + CTEST_RUN_MODE: "ExperimentalTest" script: - cd $BUILD_DIR - - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true + # Needed to run MPI enabled code in the docker images, until we set up different users + - export OMPI_ALLOW_RUN_AS_ROOT=1 + - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 + - ctest -D $CTEST_RUN_MODE --output-on-failure | tee ctestLog.log || true - awk '/The following tests FAILED/,/^Errors while running CTest|^$/' ctestLog.log | tee ctestErrors.log - - xsltproc scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > JUnitTestResults.xml + - if [ $CTEST_RUN_MODE == "ExperimentalTest" ] ; then + xsltproc scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > JUnitTestResults.xml; + else + touch JUnitTestResults.xml; + fi - if [ -s ctestErrors.log ] ; then echo "Error during running ctest"; exit 1; fi - cd .. - - tar xzf gmx-regressiontests.tar.gz - - source $INSTALL_DIR/bin/GMXRC - - cd regressiontests - - echo "perl gmxtest.pl -nt $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND" - - perl gmxtest.pl -nt $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND -xml all artifacts: reports: junit: $BUILD_DIR/JUnitTestResults.xml paths: - $BUILD_DIR/Testing - $BUILD_DIR/tests - - regressiontests + when: always + expire_in: 1 week + +.gromacs:base:regressiontest: + extends: + - .variables:default + variables: + REGRESSIONTEST_TOTAL_RANK_NUMBER: 4 + REGRESSIONTEST_OMP_RANK_NUMBER: 2 + REGRESSIONTEST_PME_RANK_NUMBER: 1 + REGRESSIONTEST_MPI_RUN_COMMAND: "" + REGRESSIONTEST_DOUBLE: "" + REGRESSIONTEST_PARALLEL: "-nt" + stage: test + cache: {} + retry: + max: 1 + script: + # This should go away once we are able to run ASAN on mdrun + - export ASAN_OPTIONS="detect_leaks=0" + # Needed to run MPI enabled code in the docker images, until we set up different users + - export OMPI_ALLOW_RUN_AS_ROOT=1 + - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 + - tar xzf gmx-regressiontests.tar.gz + - source $INSTALL_DIR/bin/GMXRC + - cd regressiontests + - perl gmxtest.pl $REGRESSIONTEST_PARALLEL $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND -xml all + artifacts: + reports: + junit: regressiontests/gmxtest.xml when: always expire_in: 1 week gromacs:gcc-7:test: extends: - .gromacs:base:test - - .use-gcc7 - - .rules:not-for-release + - .rules:merge-requests + image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi:master + variables: + KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu" + KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 needs: - job: gromacs:gcc-7:build - - job: regressiontests:prepare -gromacs:gcc-7:release:test: +gromacs:gcc-8:test: extends: - .gromacs:base:test - - .use-gcc7 - - .rules:nightly-only-for-release - stage: release-tests + - .rules:merge-requests + image: gromacs/cmake-3.15.7-gcc-8-cuda-10.1-nvidiaopencl-clfft-openmpi:master variables: - BUILD_DIR: release-builds-gcc + KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" + KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 needs: - - job: gromacs:gcc-7:release:configure - artifacts: true - - job: gromacs:gcc-7:release:build - artifacts: true - - job: regressiontests:package + - job: gromacs:gcc-8:build -gromacs:gcc-7-simd-sse41:test: +gromacs:clang-8:test: extends: - .gromacs:base:test - - .use-gcc7 - - .rules:not-for-release + - .rules:merge-requests + image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 needs: - - job: gromacs:gcc-7-simd-sse41:build - - job: regressiontests:prepare + - job: gromacs:clang-8:build -gromacs:gcc-7-double:test: +gromacs:clang-TSAN:test: extends: - .gromacs:base:test - - .use-gcc7 - - .rules:not-for-release - variables: - REGRESSIONTEST_DOUBLE: "-double" + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master needs: - - job: gromacs:gcc-7-double:build - - job: regressiontests:prepare + - job: gromacs:clang-TSAN:build -gromacs:gcc-7-double:release:test: +gromacs:clang-ASAN:test: extends: - .gromacs:base:test - - .use-gcc7 - - .rules:nightly-only-for-release - stage: release-tests + - .use-clang:base + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master variables: - BUILD_DIR: release-builds-gcc + CTEST_RUN_MODE: "ExperimentalMemCheck" needs: - - job: gromacs:gcc-7-double:release:configure - artifacts: true - - job: gromacs:gcc-7-double:release:build - artifacts: true - - job: regressiontests:package + - job: gromacs:clang-ASAN:build -gromacs:gcc-8:test: +gromacs:clang-9:test: extends: - .gromacs:base:test - - .use-gcc8 - - .rules:not-for-release + - .rules:merge-requests + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master needs: - - job: gromacs:gcc-8:build - - job: regressiontests:prepare + - job: gromacs:clang-9:build -gromacs:gcc-8:release:test: +gromacs:gcc-7:regressiontest: extends: - - .gromacs:base:test - - .use-gcc8 - - .rules:nightly-only-for-release - stage: release-tests + - .gromacs:base:regressiontest + - .rules:merge-requests + image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi:master variables: - BUILD_DIR: release-builds-gcc + KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu" + KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 + REGRESSIONTEST_PME_RANK_NUMBER: 0 + REGRESSIONTEST_TOTAL_RANK_NUMBER: 2 + REGRESSIONTEST_OMP_RANK_NUMBER: 1 needs: - - job: gromacs:gcc-8:release:configure - artifacts: true - - job: gromacs:gcc-8:release:build - artifacts: true - - job: regressiontests:package + - job: gromacs:gcc-7:build + - job: regressiontests:prepare -gromacs:gcc-8-cuda-10.2:test: +gromacs:gcc-8:regressiontest: extends: - - .gromacs:base:test - - .use-cuda - - .use-gcc8:cuda-10.2 - - .rules:not-for-release + - .gromacs:base:regressiontest + - .rules:merge-requests + image: gromacs/cmake-3.15.7-gcc-8-cuda-10.1-nvidiaopencl-clfft-openmpi:master variables: KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 REGRESSIONTEST_PME_RANK_NUMBER: 0 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2 REGRESSIONTEST_OMP_RANK_NUMBER: 1 - CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF" - # TODO: Enable GMX_PYTHON_PACKAGE when dependencies are in Docker image. needs: - - job: gromacs:gcc-8-cuda-10.2:build + - job: gromacs:gcc-8:build - job: regressiontests:prepare -gromacs:clang-6:test: +gromacs:clang-8:regressiontest: extends: - - .gromacs:base:test - - .use-clang6 - - .rules:not-for-release + - .gromacs:base:regressiontest + - .rules:merge-requests + image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 + needs: + - job: gromacs:clang-8:build + - job: regressiontests:prepare + +gromacs:clang-TSAN:regressiontest: + extends: + - .gromacs:base:regressiontest + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master + needs: + - job: gromacs:clang-TSAN:build + - job: regressiontests:prepare + +gromacs:clang-ASAN:regressiontest: + extends: + - .gromacs:base:regressiontest + - .use-clang:base + - .rules:merge-requests + image: gromacs/cmake-3.13.0-llvm-8-tsan:master + needs: + - job: gromacs:clang-ASAN:build + - job: regressiontests:prepare + +gromacs:clang-9:regressiontest: + extends: + - .gromacs:base:regressiontest + - .rules:merge-requests + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master variables: - REGRESSIONTEST_OMP_RANK_NUMBER: 0 + REGRESSIONTEST_DOUBLE: "-double" needs: - - job: gromacs:clang-6:build + - job: gromacs:clang-9:build - job: regressiontests:prepare -gromacs:clang-7:test: +gromacs:gcc-8:release:test: extends: - .gromacs:base:test - - .use-clang7 - - .rules:not-for-release + - .rules:nightly-only-for-release + stage: release-tests + image: gromacs/cmake-3.15.7-gcc-8-cuda-10.1-nvidiaopencl-clfft-openmpi:master + variables: + BUILD_DIR: release-builds-gcc needs: - - job: gromacs:clang-7:build - - job: regressiontests:prepare + - job: gromacs:gcc-8:release:configure + - job: gromacs:gcc-8:release:build -gromacs:clang-7:release:test: +gromacs:gcc-7:release:test: extends: - .gromacs:base:test - - .use-clang7 - .rules:nightly-only-for-release stage: release-tests + image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi:master variables: - BUILD_DIR: release-builds-clang + BUILD_DIR: release-builds-gcc needs: - - job: gromacs:clang-7:release:configure - artifacts: true - - job: gromacs:clang-7:release:build - artifacts: true - - job: regressiontests:package + - job: gromacs:gcc-7:release:configure + - job: gromacs:gcc-7:release:build -gromacs:clang-8:test: +gromacs:clang-9:release:test: extends: - .gromacs:base:test - - .use-clang8 - - .rules:not-for-release + - .rules:nightly-only-for-release + stage: release-tests + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master + variables: + BUILD_DIR: release-builds-clang needs: - - job: gromacs:clang-8:build - - job: regressiontests:prepare + - job: gromacs:clang-9:release:configure + - job: gromacs:clang-9:release:build gromacs:clang-8:release:test: extends: - .gromacs:base:test - - .use-clang8 - .rules:nightly-only-for-release stage: release-tests + image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi:master variables: BUILD_DIR: release-builds-clang needs: - job: gromacs:clang-8:release:configure - artifacts: true - job: gromacs:clang-8:release:build - artifacts: true + +gromacs:gcc-7:release:regressiontest: + extends: + - .gromacs:base:regressiontest + - .rules:nightly-only-for-release + stage: release-tests + image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi:master + variables: + BUILD_DIR: release-builds-gcc + needs: + - job: gromacs:gcc-7:release:build + - job: regressiontests:package + +gromacs:clang-9:release:regressiontest: + extends: + - .gromacs:base:regressiontest + - .rules:nightly-only-for-release + stage: release-tests + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master + variables: + BUILD_DIR: release-builds-clang + REGRESSIONTEST_DOUBLE: "-double" + REGRESSIONTEST_PARALLEL: "-np" + needs: + - job: gromacs:clang-9:release:build + - job: regressiontests:package + +gromacs:clang-8:release:regressiontest: + extends: + - .gromacs:base:regressiontest + - .rules:nightly-only-for-release + stage: release-tests + image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi:master + variables: + BUILD_DIR: release-builds-clang + KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" + KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 + REGRESSIONTEST_PME_RANK_NUMBER: 0 + REGRESSIONTEST_TOTAL_RANK_NUMBER: 2 + REGRESSIONTEST_OMP_RANK_NUMBER: 1 + + needs: + - job: gromacs:clang-8:release:build - job: regressiontests:package + diff --git a/admin/gitlab-ci/lint.gitlab-ci.yml b/admin/gitlab-ci/lint.gitlab-ci.yml index 6c3a96af0d..07403be39d 100644 --- a/admin/gitlab-ci/lint.gitlab-ci.yml +++ b/admin/gitlab-ci/lint.gitlab-ci.yml @@ -1,43 +1,57 @@ # Repository cleanliness. Source tidiness, linting, and policy compliance. -clang-tidy:configure: +clang-tidy:configure-push: extends: - .gromacs:base:configure - - .use-clang9 - - .rules:not-for-release + - .use-clang:base + - .rules:basic-push + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master dependencies: [] + tags: [] variables: + COMPILER_MAJOR_VERSION: 9 + BUILD_DIR: build-clang-tidy + CMAKE_EXTRA_OPTIONS: -DCLANG_TIDY=clang-tidy-$COMPILER_MAJOR_VERSION -DGMX_CLANG_TIDY=ON -DGMX_COMPILER_WARNINGS=ON + +clang-tidy:configure-schedule: + extends: + - .gromacs:base:configure + - .use-clang:base + - .rules:nightly-not-for-release + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master + dependencies: [] + tags: [] + variables: + COMPILER_MAJOR_VERSION: 9 BUILD_DIR: build-clang-tidy 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 - CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF" - # TODO: Enable GMX_PYTHON_PACKAGE for clang-tidy when dependencies are in Docker image. clang-tidy:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - - .use-clang9 - .rules:nightly-not-for-release stage: source-check + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master needs: - - job: clang-tidy:configure + - job: clang-tidy:configure-schedule variables: BUILD_DIR: build-clang-tidy - EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION clang-tidy:test: extends: - .gromacs:base:build - .use-ccache - .variables:default - - .use-clang9 - - .rules:not-for-release + - .rules:basic-push stage: source-check + image: gromacs/cmake-3.15.7-llvm-9-openmpi:master + tags: [] needs: - - job: clang-tidy:configure + - job: clang-tidy:configure-push variables: + COMPILER_MAJOR_VERSION: 9 BUILD_DIR: build-clang-tidy EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION KUBERNETES_CPU_LIMIT: 4 @@ -59,12 +73,13 @@ clang-tidy:test: clang-format: extends: - .variables:default - - .use-clang7 - - .rules:basic + - .rules:basic-push cache: {} stage: pre-build + image: gromacs/ci-docs-llvm:master tags: [] variables: + COMPILER_MAJOR_VERSION: 7 KUBERNETES_CPU_LIMIT: 1 KUBERNETES_CPU_REQUEST: 1 KUBERNETES_MEMORY_LIMIT: 2Gi @@ -83,10 +98,10 @@ clang-format: copyright-check: extends: - .variables:default - - .use-clang7 - - .rules:basic + - .rules:basic-push cache: {} stage: pre-build + image: gromacs/ci-docs-llvm:master tags: [] variables: KUBERNETES_CPU_LIMIT: 1 @@ -112,9 +127,10 @@ check-source: - .variables:default - .docs:build - .before_script:default - - .rules:not-for-release + - .rules:basic-push cache: {} stage: source-check + tags: [] needs: - job: docs:build artifacts: true diff --git a/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml b/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml index ac72f92383..2ab2cd0767 100644 --- a/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml +++ b/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml @@ -6,8 +6,9 @@ .gmxapi-0.1:clang-8: extends: - .variables:default - - .use-clang8 + - .use-clang:base stage: test + image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 variables: PY_UNIT_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml PY_MPI_UNIT_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml @@ -106,7 +107,8 @@ gmxapi-0.1:clang-8:py-3.8.2: .gmxapi-0.2:clang-8:gmx2021: extends: - .variables:default - - .use-clang8 + - .use-clang:base + image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 rules: - if: '$CI_PROJECT_NAMESPACE != "gromacs"' when: never diff --git a/admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml b/admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml index 29e59af784..8ca23620f9 100644 --- a/admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml +++ b/admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml @@ -4,7 +4,8 @@ .sample_restraint:clang-8:gmx2020: extends: - .variables:default - - .use-clang8 + - .use-clang:base + image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 stage: test variables: PLUGIN_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml diff --git a/admin/gitlab-ci/sample_restraint.gitlab-ci.yml b/admin/gitlab-ci/sample_restraint.gitlab-ci.yml index e0b02b52ca..437eac2aac 100644 --- a/admin/gitlab-ci/sample_restraint.gitlab-ci.yml +++ b/admin/gitlab-ci/sample_restraint.gitlab-ci.yml @@ -2,7 +2,8 @@ .sample_restraint:clang-8:gmx2021: extends: - .variables:default - - .use-clang8 + - .use-clang:base + image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 stage: test variables: PLUGIN_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml -- 2.22.0