From e5123942eeb6325d96e70b972aa866e4409793a3 Mon Sep 17 00:00:00 2001 From: Nora Abi Akar <nora.abiakar@gmail.com> Date: Sat, 6 Feb 2021 08:41:21 +0100 Subject: [PATCH] Use JFrog as a registry and fix build errors (#1350) * Make Gitlab CI push images to CSCS' JFrog registry reg.giuv.cscs.ch so that sarus can pull images on Daint again. This URL is probably temporary until JFrog officially goes into production later this month. Unfortunately JFrog is currently behind the firewall. * Upgrade g++ to g++8 on the Docker image. * Only require libxml when compiling with NeuroML support. --- .gitlab-ci.yml | 28 ++++++++++++++-------------- arborio/CMakeLists.txt | 2 +- ci/codecov/build.Dockerfile | 19 +++++++++++++++---- ci/release/build.Dockerfile | 10 +++++++--- 4 files changed, 37 insertions(+), 22 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b24f4c76..a763b2e5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,7 +16,7 @@ stages: variables: GIT_SUBMODULE_STRATEGY: recursive script: - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker login -u $CSCS_REGISTRY_USER -p $CSCS_REGISTRY_PASSWORD $CSCS_REGISTRY - docker build -f $BUILD_DOCKERFILE --network=host --cache-from $BUILD_IMAGE --build-arg BUILDKIT_INLINE_CACHE=1 -t $BUILD_IMAGE . - docker push $BUILD_IMAGE - docker build -f $DEPLOY_DOCKERFILE --network=host --build-arg BUILD_ENV=$BUILD_IMAGE -t $DEPLOY_IMAGE . @@ -26,17 +26,17 @@ build release: extends: .build_docker_images variables: BUILD_DOCKERFILE: ci/release/build.Dockerfile - BUILD_IMAGE: $CI_REGISTRY_IMAGE/release/build:latest + BUILD_IMAGE: $CSCS_REGISTRY_IMAGE/release/build:latest DEPLOY_DOCKERFILE: ci/release/deploy.Dockerfile - DEPLOY_IMAGE: $CI_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA + DEPLOY_IMAGE: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA build codecov: extends: .build_docker_images variables: BUILD_DOCKERFILE: ci/codecov/build.Dockerfile - BUILD_IMAGE: $CI_REGISTRY_IMAGE/codecov/build:latest + BUILD_IMAGE: $CSCS_REGISTRY_IMAGE/codecov/build:latest DEPLOY_DOCKERFILE: ci/codecov/deploy.Dockerfile - DEPLOY_IMAGE: $CI_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA + DEPLOY_IMAGE: $CSCS_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA notify_github_start: stage: build @@ -62,7 +62,7 @@ variables: ### Release tests ### allocate release: stage: allocate - image: $CI_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA only: ['master', 'staging', 'trying'] extends: .daint_alloc variables: @@ -71,7 +71,7 @@ allocate release: single node release: extends: .daint - image: $CI_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA only: ['master', 'staging', 'trying'] stage: test script: @@ -85,7 +85,7 @@ single node release: multi node release: extends: .daint - image: $CI_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA only: ['master', 'staging', 'trying'] stage: test script: @@ -97,7 +97,7 @@ multi node release: deallocate release: only: ['master', 'staging', 'trying'] - image: $CI_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA stage: cleanup extends: .daint_dealloc variables: @@ -107,7 +107,7 @@ deallocate release: allocate codecov: stage: allocate only: ['master', 'staging', 'trying'] - image: $CI_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA extends: .daint_alloc variables: PULL_IMAGE: 'YES' @@ -116,7 +116,7 @@ allocate codecov: single node codecov: extends: .daint only: ['master', 'staging', 'trying'] - image: $CI_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA stage: test script: - codecov_pre @@ -135,7 +135,7 @@ single node codecov: multi node codecov: extends: .daint only: ['master', 'staging', 'trying'] - image: $CI_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA stage: test script: - codecov_pre @@ -152,7 +152,7 @@ multi node codecov: upload codecov reports: extends: .daint only: ['master', 'staging', 'trying'] - image: $CI_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA stage: upload_reports variables: SLURM_JOB_NUM_NODES: 1 @@ -162,7 +162,7 @@ upload codecov reports: deallocate codecov: only: ['master', 'staging', 'trying'] - image: $CI_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA + image: $CSCS_REGISTRY_IMAGE/codecov/deploy:$CI_COMMIT_SHA stage: cleanup extends: .daint_dealloc variables: diff --git a/arborio/CMakeLists.txt b/arborio/CMakeLists.txt index 4cc0e2a3..59a1bc30 100644 --- a/arborio/CMakeLists.txt +++ b/arborio/CMakeLists.txt @@ -8,9 +8,9 @@ if(ARB_WITH_NEUROML) with_xml.cpp xmlwrap.cpp ) + find_package(LibXml2 REQUIRED) endif() -find_package(LibXml2 REQUIRED) add_library(arborio ${arborio-sources}) diff --git a/ci/codecov/build.Dockerfile b/ci/codecov/build.Dockerfile index 23f9e621..31e86f15 100644 --- a/ci/codecov/build.Dockerfile +++ b/ci/codecov/build.Dockerfile @@ -1,4 +1,4 @@ -FROM nvidia/cuda:10.1-devel-ubuntu18.04 +FROM nvidia/cuda:10.2-devel-ubuntu18.04 WORKDIR /root @@ -10,11 +10,22 @@ ENV MPICH_VERSION ${MPICH_VERSION} # Install basic tools RUN apt-get update -qq && apt-get install -qq -y --no-install-recommends \ - build-essential lcov \ python3 \ - git tar wget curl && \ + git tar wget curl \ + gcc-8 g++-8 make && \ + update-alternatives \ + --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 \ + --slave /usr/bin/g++ g++ /usr/bin/g++-8 \ + --slave /usr/bin/gcov gcov /usr/bin/gcov-8 && \ + update-alternatives --config gcc && \ rm -rf /var/lib/apt/lists/* +RUN wget -q "https://github.com/linux-test-project/lcov/archive/v1.14.tar.gz" && \ + tar -xzf v1.14.tar.gz && \ + cd lcov-1.14 && \ + make install -j$(nproc) && \ + rm -rf lcov-1.14 v1.14.tar.gz + # Install cmake RUN wget -qO- "https://github.com/Kitware/CMake/releases/download/v3.12.4/cmake-3.12.4-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local @@ -30,4 +41,4 @@ RUN wget -q https://www.mpich.org/static/downloads/${MPICH_VERSION}/mpich-${MPIC RUN wget -q https://github.com/haampie/libtree/releases/download/v1.2.0/libtree_x86_64.tar.gz && \ tar -xzf libtree_x86_64.tar.gz && \ rm libtree_x86_64.tar.gz && \ - ln -s /root/libtree/libtree /usr/local/bin/libtree \ No newline at end of file + ln -s /root/libtree/libtree /usr/local/bin/libtree diff --git a/ci/release/build.Dockerfile b/ci/release/build.Dockerfile index 4c17a820..e28015a5 100644 --- a/ci/release/build.Dockerfile +++ b/ci/release/build.Dockerfile @@ -1,4 +1,4 @@ -FROM nvidia/cuda:10.1-devel-ubuntu18.04 +FROM nvidia/cuda:10.2-devel-ubuntu18.04 WORKDIR /root @@ -10,9 +10,13 @@ ENV MPICH_VERSION ${MPICH_VERSION} # Install basic tools RUN apt-get update -qq && apt-get install -qq -y --no-install-recommends \ - build-essential \ python3 \ - git tar wget curl && \ + git tar wget curl \ + gcc-8 g++-8 make && \ + update-alternatives \ + --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 \ + --slave /usr/bin/g++ g++ /usr/bin/g++-8 && \ + update-alternatives --config gcc && \ rm -rf /var/lib/apt/lists/* # Install cmake -- GitLab