From d7a9ee6a3629b2751537130cdec8414ef15d5021 Mon Sep 17 00:00:00 2001 From: "M. Eric Irrgang" Date: Tue, 27 Oct 2020 08:53:46 +0000 Subject: [PATCH] Update image names in job definitions. Use explicit CMake versions, as appropriate. Refs #3621 --- admin/gitlab-ci/archive.gitlab-ci.yml | 12 +- admin/gitlab-ci/documentation.gitlab-ci.yml | 8 +- admin/gitlab-ci/gromacs.gitlab-ci.yml | 211 ++++++++++++------ admin/gitlab-ci/lint.gitlab-ci.yml | 19 +- admin/gitlab-ci/python-gmxapi.gitlab-ci.yml | 2 +- .../gitlab-ci/sample_restraint.gitlab-ci.yml | 2 +- docs/dev-manual/gitlab.rst | 10 + 7 files changed, 178 insertions(+), 86 deletions(-) diff --git a/admin/gitlab-ci/archive.gitlab-ci.yml b/admin/gitlab-ci/archive.gitlab-ci.yml index 7b234cc44f..0a9dda9943 100644 --- a/admin/gitlab-ci/archive.gitlab-ci.yml +++ b/admin/gitlab-ci/archive.gitlab-ci.yml @@ -5,9 +5,7 @@ prepare-release-version: - .variables:default - .rules:nightly-only-for-release cache: {} - # Docker image uploaded to dockerhub by user eriklindahl - # TODO: Get DockerFile for admin/dockerfiles - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs stage: configure-build variables: KUBERNETES_CPU_LIMIT: 1 @@ -27,7 +25,7 @@ regressiontests:prepare: - .variables:default - .rules:merge-and-post-merge-acceptance cache: {} - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs stage: configure-build variables: KUBERNETES_CPU_LIMIT: 1 @@ -71,7 +69,7 @@ regressiontests:package: cache: {} # Docker image uploaded to dockerhub by user eriklindahl # TODO: Get DockerFile for admin/dockerfiles - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs stage: release-package variables: KUBERNETES_CPU_LIMIT: 1 @@ -145,7 +143,7 @@ archive:configure:release: - .use-ccache - .before_script:default - .docs:build - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs variables: KUBERNETES_CPU_LIMIT: 4 KUBERNETES_CPU_REQUEST: 2 @@ -208,7 +206,7 @@ archive:package: BUILD_DIR: build-package release-verify: - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs stage: release-verify extends: - .variables:default diff --git a/admin/gitlab-ci/documentation.gitlab-ci.yml b/admin/gitlab-ci/documentation.gitlab-ci.yml index 6402d8c43b..62b399c20a 100644 --- a/admin/gitlab-ci/documentation.gitlab-ci.yml +++ b/admin/gitlab-ci/documentation.gitlab-ci.yml @@ -6,7 +6,7 @@ - .gromacs:base:configure - .before_script:default # TODO (#3480) this should be organized more like the current documentation.py script - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs stage: configure-build cache: {} variables: @@ -72,7 +72,7 @@ - .before_script:default - .rules:nightly-only-for-release # TODO (#3480) this should be organized more like the current documentation.py script - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs stage: release-configure cache: {} variables: @@ -182,7 +182,7 @@ docs:configure: .docs:build: # TODO (#3480) this should be organized more like the current documentation.py script - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs script: - cd $BUILD_DIR - cmake --build . --target gmx -- -j8 @@ -222,7 +222,7 @@ docs:build: - .gromacs:base:build - .before_script:default # TODO (#3480) this should be organized more like the current documentation.py script - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs cache: {} variables: KUBERNETES_CPU_LIMIT: 4 diff --git a/admin/gitlab-ci/gromacs.gitlab-ci.yml b/admin/gitlab-ci/gromacs.gitlab-ci.yml index f5c9ea23ca..125ed9a98d 100644 --- a/admin/gitlab-ci/gromacs.gitlab-ci.yml +++ b/admin/gitlab-ci/gromacs.gitlab-ci.yml @@ -8,8 +8,9 @@ simple-build: - .use-clang:base - .rules:basic-push stage: pre-build - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake KUBERNETES_CPU_LIMIT: 8 KUBERNETES_CPU_REQUEST: 4 KUBERNETES_MEMORY_REQUEST: 8Gi @@ -22,6 +23,7 @@ simple-build: COMPILER_MAJOR_VERSION: 9 BUILD_DIR: simple-build script: + - CMAKE=${CMAKE:-$(which cmake)} - echo $CMAKE_COMPILER_SCRIPT - echo $CMAKE_EXTRA_OPTIONS - echo $CMAKE_SIMD_OPTIONS @@ -38,7 +40,7 @@ simple-build: mkdir $BUILD_DIR ; fi - cd $BUILD_DIR - - cmake .. + - $CMAKE .. -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache $CMAKE_COMPILER_SCRIPT $CMAKE_EXTRA_OPTIONS @@ -52,12 +54,12 @@ simple-build: 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 - - cmake --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log - - cmake --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log + - $CMAKE --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log + - $CMAKE --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log | grep -v "CMake" | tee buildErrors.log || true - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true - - cmake --build . --target install 2>&1 | tee installBuildLogFile.log + - $CMAKE --build . --target install 2>&1 | tee installBuildLogFile.log - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true - awk '/The following tests FAILED/,/^Errors while running CTest|^$/' @@ -95,6 +97,7 @@ simple-build: CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug" CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF" script: + - CMAKE=${CMAKE:-$(which cmake)} - echo $CMAKE_COMPILER_SCRIPT - echo $CMAKE_EXTRA_OPTIONS - echo $CMAKE_SIMD_OPTIONS @@ -110,7 +113,7 @@ simple-build: mkdir $BUILD_DIR ; fi - cd $BUILD_DIR - - cmake .. + - $CMAKE .. -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache $CMAKE_COMPILER_SCRIPT $CMAKE_EXTRA_OPTIONS @@ -151,6 +154,7 @@ simple-build: RELEASE_SOURCE: release-source-from-tarball RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball script: + - CMAKE=${CMAKE:-$(which cmake)} - VERSION=`cat version.json | python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"` - if [[ $GROMACS_RELEASE != "true" ]] ; then @@ -222,8 +226,9 @@ gromacs:gcc-7:configure: - .use-gcc:base - .use-opencl - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256" CMAKE_EXTRA_OPTIONS: "-DGMX_EXTERNAL_CLFFT=ON" COMPILER_MAJOR_VERSION: 7 @@ -234,8 +239,9 @@ gromacs:gcc-8-cuda-11.0:configure: - .use-gcc:base - .use-cuda - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1" COMPILER_MAJOR_VERSION: 8 @@ -246,8 +252,9 @@ gromacs:gcc-8-cuda-11.0:configureMPI: - .use-cuda - .use-mpi - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1" COMPILER_MAJOR_VERSION: 8 @@ -256,8 +263,9 @@ gromacs:clang-TSAN:configure: - .gromacs:base:configure - .use-clang:base - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake COMPILER_MAJOR_VERSION: 8 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=TSAN" @@ -276,8 +284,9 @@ gromacs:clang-9-mpi:configure: - .use-clang:base - .use-mpi - .rules:merge-requests - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 9 CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON @@ -286,19 +295,21 @@ gromacs:clang-static-analyzer:configure: - .gromacs:base:configure - .use-clang:base - .rules:merge-requests - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan 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" + CMAKE: /usr/local/cmake-3.13.0/bin/cmake + 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 + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake COMPILER_MAJOR_VERSION: 8 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=ASAN" @@ -308,8 +319,9 @@ gromacs:oneapi-2021.1-beta09-opencl:configure: - .use-oneapi:base - .use-opencl - .rules:merge-requests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake COMPILER_MAJOR_VERSION: 2021 gromacs:oneapi-2021.1-beta09-sycl:configure: @@ -318,8 +330,9 @@ gromacs:oneapi-2021.1-beta09-sycl:configure: - .use-oneapi:base - .use-sycl - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake COMPILER_MAJOR_VERSION: 2021 gromacs:clang-UBSAN:configure: @@ -327,8 +340,9 @@ gromacs:clang-UBSAN:configure: - .gromacs:base:configure - .use-clang:base - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake COMPILER_MAJOR_VERSION: 8 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=UBSAN" @@ -339,8 +353,9 @@ gromacs:gcc-8-cuda-11.0:release:configure: - .use-mpi - .use-cuda - .rules:nightly-only-for-release - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 8 RELEASE_BUILD_DIR: release-builds-gcc CMAKE_EXTRA_OPTIONS: "-DGMX_BUILD_MDRUN_ONLY=ON" @@ -357,8 +372,9 @@ gromacs:gcc-7:release:configure: - .use-gcc:base - .use-opencl - .rules:nightly-only-for-release - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake COMPILER_MAJOR_VERSION: 7 CMAKE_EXTRA_OPTIONS: "-DGMX_EXTERNAL_CLFFT=ON" RELEASE_BUILD_DIR: release-builds-gcc @@ -374,8 +390,9 @@ gromacs:clang-9:release:configure: - .use-clang:base - .use-mpi - .rules:nightly-only-for-release - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 9 RELEASE_BUILD_DIR: release-builds-clang CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=ON" @@ -403,8 +420,9 @@ gromacs:oneapi-2021.1-beta09-opencl:release:configure: - .use-oneapi:base - .use-opencl - .rules:nightly-only-for-release - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake COMPILER_MAJOR_VERSION: 2021 RELEASE_BUILD_DIR: release-builds-oneapi @@ -413,13 +431,14 @@ gromacs:oneapi-2021.1-beta09-opencl:release:configure: .gromacs:base:build: stage: build script: + - CMAKE=${CMAKE:-$(which cmake)} - cd $BUILD_DIR - - cmake --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log - - cmake --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log + - $CMAKE --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log + - $CMAKE --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log | grep -v "CMake" | tee buildErrors.log || true - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true - - cmake --build . --target install 2>&1 | tee installBuildLogFile.log + - $CMAKE --build . --target install 2>&1 | tee installBuildLogFile.log - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi - for file in `find . -mindepth 1 -name "*.o" ! -type l` ; do echo $file ; rm $file ; done 2>&1 > remove-build-objects.log - cd .. @@ -432,8 +451,9 @@ gromacs:oneapi-2021.1-beta09-opencl:release:configure: .gromacs:static-analyzer-build: stage: build script: + - CMAKE=${CMAKE:-$(which cmake)} - cd $BUILD_DIR - - scan-build -o scan_html cmake --build . -- -j8 2>&1 | tee buildLogFile.log + - 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 @@ -451,7 +471,9 @@ gromacs:gcc-7:build: - .before_script:default - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake needs: - job: gromacs:gcc-7:configure artifacts: true @@ -463,7 +485,9 @@ gromacs:gcc-8-cuda-11.0:build: - .before_script:default - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake needs: - job: gromacs:gcc-8-cuda-11.0:configure @@ -474,7 +498,9 @@ gromacs:gcc-8-cuda-11.0:buildMPI: - .before_script:default - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake needs: - job: gromacs:gcc-8-cuda-11.0:configureMPI @@ -485,7 +511,9 @@ gromacs:clang-TSAN:build: - .use-clang:base - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake needs: - job: gromacs:clang-TSAN:configure @@ -496,7 +524,9 @@ gromacs:clang-ASAN:build: - .use-clang:base - .use-ccache - .rules:merge-requests - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: - k8s-scilifelab needs: @@ -509,7 +539,9 @@ gromacs:clang-UBSAN:build: - .use-clang:base - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: - k8s-scilifelab needs: @@ -522,7 +554,9 @@ gromacs:clang-static-analyzer:build: - .use-clang:base - .use-ccache - .rules:merge-requests - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: - k8s-scilifelab needs: @@ -546,7 +580,9 @@ gromacs:oneapi-2021.1-beta09-opencl:build: - .use-ccache - .use-oneapi:base - .rules:merge-requests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: - job: gromacs:oneapi-2021.1-beta09-opencl:configure @@ -557,7 +593,9 @@ gromacs:oneapi-2021.1-beta09-sycl:build: - .use-ccache - .use-oneapi:base - .rules:merge-and-post-merge-acceptance - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: - job: gromacs:oneapi-2021.1-beta09-sycl:configure @@ -568,7 +606,9 @@ gromacs:clang-9-mpi:build: - .before_script:default - .use-ccache - .rules:merge-requests - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 + variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake needs: - job: gromacs:clang-9-mpi:configure @@ -581,8 +621,9 @@ gromacs:gcc-8-cuda-11.0:release:build: - .rules:nightly-only-for-release stage: release-build variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: release-builds-gcc - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 needs: - job: gromacs:gcc-8-cuda-11.0:release:configure @@ -595,8 +636,9 @@ gromacs:gcc-7:release:build: - .rules:nightly-only-for-release stage: release-build variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake BUILD_DIR: release-builds-gcc - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 needs: - job: gromacs:gcc-7:release:configure @@ -609,8 +651,9 @@ gromacs:clang-9:release:build: - .rules:nightly-only-for-release stage: release-build variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: release-builds-clang - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 needs: - job: gromacs:clang-9:release:configure @@ -638,9 +681,10 @@ gromacs:oneapi-2021.1-beta09-opencl:release:build: - .rules:nightly-only-for-release stage: release-build variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake BUILD_DIR: release-builds-oneapi COMPILER_MAJOR_VERSION: 2021 - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 needs: - job: gromacs:oneapi-2021.1-beta09-opencl:release:configure @@ -656,6 +700,7 @@ gromacs:oneapi-2021.1-beta09-opencl:release:build: variables: CTEST_RUN_MODE: "ExperimentalTest" script: + - CMAKE=${CMAKE:-$(which cmake)} - cd $BUILD_DIR - export UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1:suppressions=$CI_PROJECT_DIR/admin/ubsan-suppressions.txt # Needed to run MPI enabled code in the docker images, until we set up different users @@ -727,8 +772,9 @@ gromacs:gcc-7:test: extends: - .gromacs:base:test - .rules:merge-requests - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib" @@ -741,8 +787,9 @@ gromacs:gcc-8-cuda-11.0:test: extends: - .gromacs:base:test - .rules:merge-requests - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 tags: @@ -754,8 +801,9 @@ gromacs:gcc-8-cuda-11.0:test-gpucommupd: extends: - .gromacs:base:test - .rules:post-merge-acceptance - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 GMX_GPU_DD_COMMS: 1 @@ -778,7 +826,9 @@ gromacs:clang-TSAN:test: extends: - .gromacs:base:test - .rules:post-merge-acceptance - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake needs: - job: gromacs:clang-TSAN:build @@ -787,8 +837,9 @@ gromacs:clang-ASAN:test: - .gromacs:base:test - .use-clang:base - .rules:merge-requests - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake CTEST_RUN_MODE: "ExperimentalMemCheck" tags: - k8s-scilifelab @@ -800,7 +851,9 @@ gromacs:clang-UBSAN:test: - .gromacs:base:test - .use-clang:base - .rules:post-merge-acceptance - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: - k8s-scilifelab needs: @@ -811,7 +864,9 @@ gromacs:oneapi-2021.1-beta09-opencl:test: - .gromacs:base:test - .use-oneapi:base - .rules:merge-requests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: - job: gromacs:oneapi-2021.1-beta09-opencl:build @@ -820,7 +875,9 @@ gromacs:oneapi-2021.1-beta09-sycl:test: - .gromacs:base:test - .use-oneapi:base - .rules:post-merge-acceptance - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: - job: gromacs:oneapi-2021.1-beta09-sycl:build @@ -828,7 +885,9 @@ gromacs:clang-9-mpi:test: extends: - .gromacs:base:test - .rules:merge-requests - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 + variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake tags: - k8s-scilifelab needs: @@ -838,8 +897,9 @@ gromacs:gcc-7:regressiontest: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 REGRESSIONTEST_PME_RANK_NUMBER: 0 @@ -856,8 +916,9 @@ gromacs:gcc-8-cuda-11.0:regressiontest: extends: - .gromacs:base:regressiontest - .rules:merge-requests - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 REGRESSIONTEST_PME_RANK_NUMBER: 0 @@ -873,8 +934,9 @@ gromacs:gcc-8-cuda-11.0:regressiontest-gpucommupd-tMPI: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2 REGRESSIONTEST_PME_RANK_NUMBER: 0 @@ -898,8 +960,9 @@ gromacs:gcc-8-cuda-11.0:regressiontest-gpucommupd-MPI: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2 REGRESSIONTEST_PME_RANK_NUMBER: 0 @@ -935,7 +998,9 @@ gromacs:clang-TSAN:regressiontest: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: - k8s-scilifelab needs: @@ -947,7 +1012,9 @@ gromacs:clang-ASAN:regressiontest: - .gromacs:base:regressiontest - .use-clang:base - .rules:merge-requests - image: gromacs/cmake-3.13.0-llvm-8-tsan-master + image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: - k8s-scilifelab needs: @@ -958,8 +1025,9 @@ gromacs:clang-9:regressiontest: extends: - .gromacs:base:regressiontest - .rules:merge-requests - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake REGRESSIONTEST_DOUBLE: "-double" REGRESSIONTEST_PARALLEL: "-np" tags: @@ -973,7 +1041,9 @@ gromacs:oneapi-2021.1-beta09-opencl:regressiontest: - .gromacs:base:regressiontest - .use-oneapi:base - .rules:merge-requests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: - job: gromacs:oneapi-2021.1-beta09-opencl:build - job: regressiontests:prepare @@ -983,7 +1053,9 @@ gromacs:oneapi-2021.1-beta09-sycl:regressiontest: - .gromacs:base:regressiontest - .use-oneapi:base - .rules:post-merge-acceptance - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: - job: gromacs:oneapi-2021.1-beta09-sycl:build - job: regressiontests:prepare @@ -993,8 +1065,9 @@ gromacs:gcc-8-cuda-11.0:release:test: - .gromacs:base:test - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 BUILD_DIR: release-builds-gcc @@ -1009,8 +1082,9 @@ gromacs:gcc-7:release:test: - .gromacs:base:test - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake BUILD_DIR: release-builds-gcc KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 @@ -1026,8 +1100,9 @@ gromacs:clang-9:release:test: - .gromacs:base:test - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: release-builds-clang needs: - job: gromacs:clang-9:release:configure @@ -1055,8 +1130,9 @@ gromacs:oneapi-2021.1-beta09-opencl:release:test: - .use-oneapi:base - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake BUILD_DIR: release-builds-oneapi needs: - job: gromacs:oneapi-2021.1-beta09-opencl:release:configure @@ -1067,8 +1143,9 @@ gromacs:gcc-7:release:regressiontest: - .gromacs:base:regressiontest - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 variables: + CMAKE: /usr/local/cmake-3.13.0/bin/cmake BUILD_DIR: release-builds-gcc KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 @@ -1084,8 +1161,9 @@ gromacs:clang-9:release:regressiontest: - .gromacs:base:regressiontest - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: release-builds-clang REGRESSIONTEST_DOUBLE: "-double" REGRESSIONTEST_PARALLEL: "-np" @@ -1120,8 +1198,9 @@ gromacs:oneapi-2021.1-beta09-opencl:release:regressiontest: - .use-oneapi:base - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master + image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: + CMAKE: /usr/local/cmake-3.17.2/bin/cmake BUILD_DIR: release-builds-oneapi REGRESSIONTEST_PME_RANK_NUMBER: 0 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2 diff --git a/admin/gitlab-ci/lint.gitlab-ci.yml b/admin/gitlab-ci/lint.gitlab-ci.yml index 95c0719d0e..325248ef53 100644 --- a/admin/gitlab-ci/lint.gitlab-ci.yml +++ b/admin/gitlab-ci/lint.gitlab-ci.yml @@ -5,8 +5,9 @@ clang-tidy:configure-push: - .gromacs:base:configure - .use-clang:base - .rules:basic-push - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake 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 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON @@ -16,8 +17,9 @@ clang-tidy:configure-schedule: - .gromacs:base:configure - .use-clang:base - .rules:nightly-not-for-release - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake 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 @@ -29,10 +31,11 @@ clang-tidy:build: - .variables:default - .rules:nightly-not-for-release stage: source-check - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 needs: - job: clang-tidy:configure-schedule variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: build-clang-tidy clang-tidy:test: @@ -41,10 +44,11 @@ clang-tidy:test: - .variables:default - .rules:basic-push stage: source-check - image: gromacs/cmake-3.15.7-llvm-9-openmpi-master + image: gromacs/ci-ubuntu-18.04-llvm-9 needs: - job: clang-tidy:configure-push variables: + CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 9 BUILD_DIR: build-clang-tidy EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION @@ -77,7 +81,7 @@ clang-format: - .rules:basic-push cache: {} stage: pre-build - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs variables: COMPILER_MAJOR_VERSION: 7 KUBERNETES_CPU_LIMIT: 1 @@ -107,7 +111,7 @@ copyright-check: - .rules:basic-push cache: {} stage: pre-build - image: gromacs/ci-docs-llvm-master + image: gromacs/ci-ubuntu-18.04-llvm-7-docs variables: KUBERNETES_CPU_LIMIT: 1 KUBERNETES_CPU_REQUEST: 1 @@ -152,8 +156,9 @@ check-source: KUBERNETES_MEMORY_REQUEST: 2Gi BUILD_DIR: build-docs script: + - CMAKE=${CMAKE:-$(which cmake)} - cd $BUILD_DIR - - cmake --build . --target check-source + - $CMAKE --build . --target check-source - awk '/warning.*include style.*order/,/You can use.*rst|^$/' docs/doxygen/check-source.log | tee doxygenError.txt || true - awk '/warning:.*includes/,/unnecessarily|^$/' docs/doxygen/check-source.log | tee -a doxygenError.txt || true - awk '/Traceback/,/.*rror|^$/' docs/doxygen/doxygen*log docs/doxygen/check-source.log | tee -a doxygenError.txt || true diff --git a/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml b/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml index b67387838b..dc4ed50796 100644 --- a/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml +++ b/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml @@ -78,7 +78,7 @@ gmxapi-0.1:clang-8:py-3.8.2: extends: - .variables:default - .use-clang:base - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 stage: test variables: KUBERNETES_CPU_LIMIT: 2 diff --git a/admin/gitlab-ci/sample_restraint.gitlab-ci.yml b/admin/gitlab-ci/sample_restraint.gitlab-ci.yml index 56833f77ea..b20cf11b14 100644 --- a/admin/gitlab-ci/sample_restraint.gitlab-ci.yml +++ b/admin/gitlab-ci/sample_restraint.gitlab-ci.yml @@ -3,7 +3,7 @@ extends: - .variables:default - .use-clang:base - image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master + image: gromacs/ci-ubuntu-18.04-gcc-7 stage: test variables: KUBERNETES_CPU_LIMIT: 2 diff --git a/docs/dev-manual/gitlab.rst b/docs/dev-manual/gitlab.rst index e705675eb2..3c5dda31de 100644 --- a/docs/dev-manual/gitlab.rst +++ b/docs/dev-manual/gitlab.rst @@ -214,6 +214,16 @@ Other important variable keys are as follows. Integer version number provided by toolchain mix-in for convenience and internal use. + CMAKE + ``gromacs/ci-...`` Docker images built after October 2020 have several + versions of CMake installed. The most recent version of CMake in the + container will be appear first in ``PATH``. To allow individual jobs to + use specific versions of CMake, please write the job *script* sections + using ``$CMAKE`` instead of ``cmake`` and begin the *script* section with + a line such as ``- CMAKE=${CMAKE:-$(which cmake)}``. Specify a CMake + version by setting the *CMAKE* variable to the full executable path for + the CMake version you would like to use. See also :doc:`containers`. + CMAKE_COMPILER_SCRIPT CMake command line options for a tool chain. A definition is provided by the mix-in toolchain definitions (e.g. ``.use-gcc8``) to be appended to -- 2.22.0