From 43db89edc489d73c84dbcd94bb32de25bf700d1a Mon Sep 17 00:00:00 2001 From: Paul Bauer Date: Mon, 9 Nov 2020 12:38:18 +0000 Subject: [PATCH] Use images from GitLab docker repository Docker is reducing the maximum number of pulls from their storage, and we are already now hitting the limit with heavy CI activity. Now uses images from GitLab Docker Repository instead. Fixes #3788 --- admin/containers/buildall.sh | 3 +- admin/containers/utility.py | 9 +- admin/gitlab-ci/archive.gitlab-ci.yml | 10 +- admin/gitlab-ci/documentation.gitlab-ci.yml | 8 +- admin/gitlab-ci/gromacs.gitlab-ci.yml | 134 +++++++++--------- admin/gitlab-ci/lint.gitlab-ci.yml | 12 +- admin/gitlab-ci/python-gmxapi.gitlab-ci.yml | 4 +- .../sample_restraint-regression.gitlab-ci.yml | 2 +- .../gitlab-ci/sample_restraint.gitlab-ci.yml | 2 +- docs/dev-manual/containers.rst | 37 ++++- 10 files changed, 129 insertions(+), 92 deletions(-) diff --git a/admin/containers/buildall.sh b/admin/containers/buildall.sh index 35d37d8a69..c36b07de16 100644 --- a/admin/containers/buildall.sh +++ b/admin/containers/buildall.sh @@ -13,6 +13,7 @@ args[${#args[@]}]="--gcc 8 --cuda 11.0 --clfft --mpi openmpi" args[${#args[@]}]="--gcc 7 --clfft --mpi openmpi --ubuntu 18.04" args[${#args[@]}]="--llvm 8 --tsan" args[${#args[@]}]="--llvm 8 --cuda 10.0 --clfft --mpi openmpi" +args[${#args[@]}]="--llvm 8 --cuda 10.1 --clfft --mpi openmpi" args[${#args[@]}]="--llvm 8 --cuda 11.0 --clfft --mpi openmpi" args[${#args[@]}]="--llvm 9 --clfft --mpi openmpi --ubuntu 18.04" args[${#args[@]}]="--oneapi 2021.1-beta09" @@ -34,7 +35,7 @@ for arg_string in "${args[@]}"; do done echo "Run the following to upload the updated images." -echo "docker login" +echo "docker login registry.gitlab.com -u -p " for tag in "${tags[@]}"; do echo "docker push $tag" done diff --git a/admin/containers/utility.py b/admin/containers/utility.py index 3df5fdc8be..66d8af6fd3 100644 --- a/admin/containers/utility.py +++ b/admin/containers/utility.py @@ -139,11 +139,11 @@ parser.add_argument('--venvs', nargs='*', type=str, default=_python_versions, def image_name(configuration: argparse.Namespace) -> str: """Generate docker image name. - The configuration slug has the form:: + Image names have the form ``ci-``, where the configuration slug has the form:: ---[--][-] - Image name is prefixed by ``gromacs/ci-`` + This function also applies an appropriate Docker image repository prefix. Arguments: configuration: Docker image configuration as described by the parsed arguments. @@ -177,7 +177,10 @@ def image_name(configuration: argparse.Namespace) -> str: if value is not None: elements.append(cases[attr]) slug = '-'.join(elements) - return 'gromacs/ci-' + slug + # we are using the GitLab container registry to store the images + # to get around issues with pulling them repeatedly from DockerHub + # and running into the image pull limitation there. + return 'registry.gitlab.com/gromacs/gromacs/ci-' + slug if __name__ == "__main__": diff --git a/admin/gitlab-ci/archive.gitlab-ci.yml b/admin/gitlab-ci/archive.gitlab-ci.yml index 0a9dda9943..4b2cb78693 100644 --- a/admin/gitlab-ci/archive.gitlab-ci.yml +++ b/admin/gitlab-ci/archive.gitlab-ci.yml @@ -5,7 +5,7 @@ prepare-release-version: - .variables:default - .rules:nightly-only-for-release cache: {} - image: gromacs/ci-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-7-docs stage: configure-build variables: KUBERNETES_CPU_LIMIT: 1 @@ -25,7 +25,7 @@ regressiontests:prepare: - .variables:default - .rules:merge-and-post-merge-acceptance cache: {} - image: gromacs/ci-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-7-docs stage: configure-build variables: KUBERNETES_CPU_LIMIT: 1 @@ -69,7 +69,7 @@ regressiontests:package: cache: {} # Docker image uploaded to dockerhub by user eriklindahl # TODO: Get DockerFile for admin/dockerfiles - image: gromacs/ci-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-7-docs stage: release-package variables: KUBERNETES_CPU_LIMIT: 1 @@ -143,7 +143,7 @@ archive:configure:release: - .use-ccache - .before_script:default - .docs:build - image: gromacs/ci-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-7-docs variables: KUBERNETES_CPU_LIMIT: 4 KUBERNETES_CPU_REQUEST: 2 @@ -206,7 +206,7 @@ archive:package: BUILD_DIR: build-package release-verify: - image: gromacs/ci-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/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 62b399c20a..36ce9b6ea3 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-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/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-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/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-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/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-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/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 a4deaa01e7..2360be64bc 100644 --- a/admin/gitlab-ci/gromacs.gitlab-ci.yml +++ b/admin/gitlab-ci/gromacs.gitlab-ci.yml @@ -8,7 +8,7 @@ simple-build: - .use-clang:base - .rules:basic-push stage: pre-build - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake KUBERNETES_CPU_LIMIT: 8 @@ -226,7 +226,7 @@ gromacs:gcc-7:configure: - .use-gcc:base - .use-opencl - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256" @@ -239,7 +239,7 @@ gromacs:clang-8-cuda-10.0:configure: - .use-clang:base - .use-cuda - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake CMAKE_SIMD_OPTIONS: "-DGMX_USE_SIMD_KERNELS=off" @@ -253,7 +253,7 @@ gromacs:gcc-8-cuda-11.0:configure: - .use-gcc:base - .use-cuda - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/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" @@ -266,7 +266,7 @@ gromacs:gcc-8-cuda-11.0:configureMPI: - .use-cuda - .use-mpi - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/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" @@ -277,7 +277,7 @@ gromacs:clang-TSAN:configure: - .gromacs:base:configure - .use-clang:base - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake COMPILER_MAJOR_VERSION: 8 @@ -288,7 +288,7 @@ gromacs:clang-8:configure: - .gromacs:base:configure - .use-clang:base - .rules:merge-requests - image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 variables: COMPILER_MAJOR_VERSION: 8 @@ -298,7 +298,7 @@ gromacs:clang-9-mpi:configure: - .use-clang:base - .use-mpi - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 9 @@ -309,7 +309,7 @@ gromacs:clang-static-analyzer:configure: - .gromacs:base:configure - .use-clang:base - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake CMAKE_COMPILER_SCRIPT: "-DCMAKE_CXX_COMPILER=/usr/local/libexec/c++-analyzer -DCMAKE_C_COMPILER=gcc" @@ -321,7 +321,7 @@ gromacs:clang-ASAN:configure: - .gromacs:base:configure - .use-clang:base - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake COMPILER_MAJOR_VERSION: 8 @@ -333,7 +333,7 @@ gromacs:oneapi-2021.1-beta09-opencl:configure: - .use-oneapi:base - .use-opencl - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/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 @@ -344,7 +344,7 @@ gromacs:oneapi-2021.1-beta09-sycl:configure: - .use-oneapi:base - .use-sycl - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/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 @@ -354,7 +354,7 @@ gromacs:clang-UBSAN:configure: - .gromacs:base:configure - .use-clang:base - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake COMPILER_MAJOR_VERSION: 8 @@ -367,7 +367,7 @@ gromacs:gcc-8-cuda-11.0:release:configure: - .use-mpi - .use-cuda - .rules:nightly-only-for-release - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 8 @@ -386,7 +386,7 @@ gromacs:gcc-7:release:configure: - .use-gcc:base - .use-opencl - .rules:nightly-only-for-release - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake COMPILER_MAJOR_VERSION: 7 @@ -404,7 +404,7 @@ gromacs:clang-9:release:configure: - .use-clang:base - .use-mpi - .rules:nightly-only-for-release - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 9 @@ -422,7 +422,7 @@ gromacs:clang-8-cuda-10.1:release:configure: - .use-clang:base - .use-cuda - .rules:nightly-only-for-release - image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1 variables: COMPILER_MAJOR_VERSION: 8 RELEASE_BUILD_DIR: release-builds-clang @@ -434,7 +434,7 @@ gromacs:oneapi-2021.1-beta09-opencl:release:configure: - .use-oneapi:base - .use-opencl - .rules:nightly-only-for-release - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/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 @@ -485,7 +485,7 @@ gromacs:gcc-7:build: - .before_script:default - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake needs: @@ -498,7 +498,7 @@ gromacs:clang-8-cuda-10.0:build: - .use-clang:base - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake needs: @@ -511,7 +511,7 @@ gromacs:gcc-8-cuda-11.0:build: - .before_script:default - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake needs: @@ -524,7 +524,7 @@ gromacs:gcc-8-cuda-11.0:buildMPI: - .before_script:default - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake needs: @@ -537,7 +537,7 @@ gromacs:clang-TSAN:build: - .use-clang:base - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake needs: @@ -550,7 +550,7 @@ gromacs:clang-ASAN:build: - .use-clang:base - .use-ccache - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: @@ -565,7 +565,7 @@ gromacs:clang-UBSAN:build: - .use-clang:base - .use-ccache - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: @@ -580,7 +580,7 @@ gromacs:clang-static-analyzer:build: - .use-clang:base - .use-ccache - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: @@ -595,7 +595,7 @@ gromacs:clang-8:build: - .before_script:default - .use-ccache - .rules:merge-requests - image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 needs: - job: gromacs:clang-8:configure @@ -606,7 +606,7 @@ gromacs:oneapi-2021.1-beta09-opencl:build: - .use-ccache - .use-oneapi:base - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: @@ -619,7 +619,7 @@ gromacs:oneapi-2021.1-beta09-sycl:build: - .use-ccache - .use-oneapi:base - .rules:merge-and-post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: @@ -632,7 +632,7 @@ gromacs:clang-9-mpi:build: - .before_script:default - .use-ccache - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake needs: @@ -649,7 +649,7 @@ gromacs:gcc-8-cuda-11.0:release:build: variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: release-builds-gcc - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 needs: - job: gromacs:gcc-8-cuda-11.0:release:configure @@ -664,7 +664,7 @@ gromacs:gcc-7:release:build: variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake BUILD_DIR: release-builds-gcc - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 needs: - job: gromacs:gcc-7:release:configure @@ -679,7 +679,7 @@ gromacs:clang-9:release:build: variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: release-builds-clang - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 needs: - job: gromacs:clang-9:release:configure @@ -693,7 +693,7 @@ gromacs:clang-8-cuda-10.1:release:build: stage: release-build variables: BUILD_DIR: release-builds-clang - image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1 needs: - job: gromacs:clang-8-cuda-10.1:release:configure @@ -710,7 +710,7 @@ gromacs:oneapi-2021.1-beta09-opencl:release:build: CMAKE: /usr/local/cmake-3.17.2/bin/cmake BUILD_DIR: release-builds-oneapi COMPILER_MAJOR_VERSION: 2021 - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 needs: - job: gromacs:oneapi-2021.1-beta09-opencl:release:configure @@ -798,7 +798,7 @@ gromacs:gcc-7:test: extends: - .gromacs:base:test - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu" @@ -813,7 +813,7 @@ gromacs:clang-8-cuda-10.0:test: extends: - .gromacs:base:test - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" @@ -827,7 +827,7 @@ gromacs:gcc-8-cuda-11.0:test: extends: - .gromacs:base:test - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/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" @@ -841,7 +841,7 @@ gromacs:gcc-8-cuda-11.0:test-gpucommupd: extends: - .gromacs:base:test - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/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" @@ -858,7 +858,7 @@ gromacs:clang-8:test: extends: - .gromacs:base:test - .rules:merge-requests - image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 needs: - job: gromacs:clang-8:build @@ -866,7 +866,7 @@ gromacs:clang-TSAN:test: extends: - .gromacs:base:test - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake needs: @@ -877,7 +877,7 @@ gromacs:clang-ASAN:test: - .gromacs:base:test - .use-clang:base - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake CTEST_RUN_MODE: "ExperimentalMemCheck" @@ -891,7 +891,7 @@ gromacs:clang-UBSAN:test: - .gromacs:base:test - .use-clang:base - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: @@ -904,7 +904,7 @@ gromacs:oneapi-2021.1-beta09-opencl:test: - .gromacs:base:test - .use-oneapi:base - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: @@ -915,7 +915,7 @@ gromacs:oneapi-2021.1-beta09-sycl:test: - .gromacs:base:test - .use-oneapi:base - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: @@ -925,7 +925,7 @@ gromacs:clang-9-mpi:test: extends: - .gromacs:base:test - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake tags: @@ -937,7 +937,7 @@ gromacs:gcc-7:regressiontest: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu" @@ -956,7 +956,7 @@ gromacs:clang-8-cuda-10.0:regressiontest: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" @@ -975,7 +975,7 @@ gromacs:gcc-8-cuda-11.0:regressiontest: extends: - .gromacs:base:regressiontest - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/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" @@ -993,7 +993,7 @@ gromacs:gcc-8-cuda-11.0:regressiontest-gpucommupd-tMPI: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/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" @@ -1019,7 +1019,7 @@ gromacs:gcc-8-cuda-11.0:regressiontest-upd-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: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 variables: KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2 @@ -1042,7 +1042,7 @@ gromacs:gcc-8-cuda-11.0:regressiontest-gpucommupd-MPI: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/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" @@ -1069,7 +1069,7 @@ gromacs:clang-8:regressiontest: extends: - .gromacs:base:regressiontest - .rules:merge-requests - image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0 tags: - k8s-scilifelab needs: @@ -1080,7 +1080,7 @@ gromacs:clang-TSAN:regressiontest: extends: - .gromacs:base:regressiontest - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: @@ -1094,7 +1094,7 @@ gromacs:clang-ASAN:regressiontest: - .gromacs:base:regressiontest - .use-clang:base - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-8-tsan + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake tags: @@ -1107,7 +1107,7 @@ gromacs:clang-9:regressiontest: extends: - .gromacs:base:regressiontest - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake REGRESSIONTEST_DOUBLE: "-double" @@ -1123,7 +1123,7 @@ gromacs:oneapi-2021.1-beta09-opencl:regressiontest: - .gromacs:base:regressiontest - .use-oneapi:base - .rules:merge-requests - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: @@ -1135,7 +1135,7 @@ gromacs:oneapi-2021.1-beta09-sycl:regressiontest: - .gromacs:base:regressiontest - .use-oneapi:base - .rules:post-merge-acceptance - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 variables: CMAKE: /usr/local/cmake-3.17.2/bin/cmake needs: @@ -1147,7 +1147,7 @@ gromacs:gcc-8-cuda-11.0:release:test: - .gromacs:base:test - .rules:nightly-only-for-release stage: release-tests - image: gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0 + image: ${CI_REGISTRY}/gromacs/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" @@ -1164,7 +1164,7 @@ gromacs:gcc-7:release:test: - .gromacs:base:test - .rules:nightly-only-for-release stage: release-tests - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake BUILD_DIR: release-builds-gcc @@ -1182,7 +1182,7 @@ gromacs:clang-9:release:test: - .gromacs:base:test - .rules:nightly-only-for-release stage: release-tests - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: release-builds-clang @@ -1195,7 +1195,7 @@ gromacs:clang-8-cuda-10.1:release:test: - .gromacs:base:test - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1 variables: KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 @@ -1212,7 +1212,7 @@ gromacs:oneapi-2021.1-beta09-opencl:release:test: - .use-oneapi:base - .rules:nightly-only-for-release stage: release-tests - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/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 @@ -1225,7 +1225,7 @@ gromacs:gcc-7:release:regressiontest: - .gromacs:base:regressiontest - .rules:nightly-only-for-release stage: release-tests - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 variables: CMAKE: /usr/local/cmake-3.13.0/bin/cmake BUILD_DIR: release-builds-gcc @@ -1243,7 +1243,7 @@ gromacs:clang-9:release:regressiontest: - .gromacs:base:regressiontest - .rules:nightly-only-for-release stage: release-tests - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake BUILD_DIR: release-builds-clang @@ -1260,7 +1260,7 @@ gromacs:clang-8-cuda-10.1:release:regressiontest: - .gromacs:base:regressiontest - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1 variables: BUILD_DIR: release-builds-clang KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" @@ -1280,7 +1280,7 @@ gromacs:oneapi-2021.1-beta09-opencl:release:regressiontest: - .use-oneapi:base - .rules:nightly-only-for-release stage: release-tests - image: gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1-beta09 + image: ${CI_REGISTRY}/gromacs/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 diff --git a/admin/gitlab-ci/lint.gitlab-ci.yml b/admin/gitlab-ci/lint.gitlab-ci.yml index 325248ef53..560e5cb991 100644 --- a/admin/gitlab-ci/lint.gitlab-ci.yml +++ b/admin/gitlab-ci/lint.gitlab-ci.yml @@ -5,7 +5,7 @@ clang-tidy:configure-push: - .gromacs:base:configure - .use-clang:base - .rules:basic-push - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 9 @@ -17,7 +17,7 @@ clang-tidy:configure-schedule: - .gromacs:base:configure - .use-clang:base - .rules:nightly-not-for-release - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 variables: CMAKE: /usr/local/cmake-3.15.7/bin/cmake COMPILER_MAJOR_VERSION: 9 @@ -31,7 +31,7 @@ clang-tidy:build: - .variables:default - .rules:nightly-not-for-release stage: source-check - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 needs: - job: clang-tidy:configure-schedule variables: @@ -44,7 +44,7 @@ clang-tidy:test: - .variables:default - .rules:basic-push stage: source-check - image: gromacs/ci-ubuntu-18.04-llvm-9 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9 needs: - job: clang-tidy:configure-push variables: @@ -81,7 +81,7 @@ clang-format: - .rules:basic-push cache: {} stage: pre-build - image: gromacs/ci-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-7-docs variables: COMPILER_MAJOR_VERSION: 7 KUBERNETES_CPU_LIMIT: 1 @@ -111,7 +111,7 @@ copyright-check: - .rules:basic-push cache: {} stage: pre-build - image: gromacs/ci-ubuntu-18.04-llvm-7-docs + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-7-docs variables: KUBERNETES_CPU_LIMIT: 1 KUBERNETES_CPU_REQUEST: 1 diff --git a/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml b/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml index dc4ed50796..3ffd73e073 100644 --- a/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml +++ b/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml @@ -8,7 +8,7 @@ - .variables:default - .use-clang:base stage: test - image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 + image: ${CI_REGISTRY}/gromacs/gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 variables: KUBERNETES_CPU_LIMIT: 2 KUBERNETES_CPU_REQUEST: 2 @@ -78,7 +78,7 @@ gmxapi-0.1:clang-8:py-3.8.2: extends: - .variables:default - .use-clang:base - image: gromacs/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 stage: test variables: KUBERNETES_CPU_LIMIT: 2 diff --git a/admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml b/admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml index f7c7f60efb..e5d9b0a412 100644 --- a/admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml +++ b/admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml @@ -5,7 +5,7 @@ extends: - .variables:default - .use-clang:base - image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 + image: ${CI_REGISTRY}/gromacs/gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020 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 a52a4ad1dd..4f024eba9d 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/ci-ubuntu-18.04-gcc-7 + image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7 stage: test variables: KUBERNETES_CPU_LIMIT: 2 diff --git a/docs/dev-manual/containers.rst b/docs/dev-manual/containers.rst index 20cf4d9c25..0ca634440c 100644 --- a/docs/dev-manual/containers.rst +++ b/docs/dev-manual/containers.rst @@ -9,10 +9,43 @@ A number of images are maintained to provide a breadth of testing coverage. Scripts and configuration files for building images are stored in the repository under :file:`admin/containers/` Images are (re)built manually by |Gromacs| project staff and pushed to -repositories at https://hub.docker.com/u/gromacs +DockerHub and GitLab. +See https://hub.docker.com/u/gromacs and https://gitlab.com/gromacs/gromacs/container_registry + +GitLab Container Registry +========================= + +CI Pipelines use a GitLab container registry instead of pulling from Docker Hub. + +Project members with role ``Developer`` or higher privilege can +`push images `__ +to the container registry. + +Steps: + +1. Create a `personal access token `__ + with ``write_registry`` scope. Save the hash! +2. Authenticate from the command line with ``docker login registry.gitlab.com -u -p `` +3. ``docker push registry.gitlab.com/gromacs/gromacs/`` Refer to :file:`buildall.sh` in the ``master`` branch for the set of images -currently being built. +currently built. + +Within :doc:`pipeline jobs `, jobs specify a Docker image with the *image* property. +For image naming convention, see :py:func:`utility.image_name`. +Images from the GitLab registry +are easily accessible with the same identifier as above. +For portability, CI environment variables may be preferable for parts of the image identifier. +Example:: + + some_job: + image: ${CI_REGISTRY_IMAGE}/ci- + ... + +For more granularity, +consider equivalent expressions ``${CI_REGISTRY}/${CI_PROJECT_PATH}`` +or ``${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}`` +Ref: https://docs.gitlab.com/ee/ci/variables/predefined_variables.html Utilities ========= -- 2.22.0