diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7b0a6a84fd51884b8739d62a53b2d783dd968fec..c964774706caeb97d83c3fa7f53ace290fb82f8f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -249,7 +249,7 @@ oneapi_jug_dev:default: fi ## Copy jug_dev files into build context - cp -r containers/jug/* containers/oneapi - - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG} + - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG} ${CACHE_FLAG} -f containers/oneapi/onedev.Dockerfile --build-arg SPACK_VERSION="${SPACK_VERSION}" --build-arg SPACK_CHERRYPICKS="${SPACK_CHERRYPICKS}" @@ -273,8 +273,9 @@ oneapi_jug_xl:default: - cp containers/jug/setup_detectors.py containers/oneapi - cp detectors.yaml containers/oneapi - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG} - -f containers/oneapi/onexl.Dockerfile + -f containers/jug/xl.Dockerfile --build-arg INTERNAL_TAG=${INTERNAL_TAG} + --build-arg BASEIMAGE="oneapi_jug_dev" --build-arg JUGGLER_VERSION=${JUGGLER_VERSION} --build-arg NPDET_VERSION=${NPDET_VERSION} --build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD) @@ -297,10 +298,11 @@ oneapi_jug_xl:nightly: BUILD_IMAGE: "oneapi_jug_xl" script: - cp containers/jug/setup_detectors.py containers/oneapi - - cp detectors.yaml containers/oneapi - - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${NIGHTLY_TAG} - -f containers/oneapi/onexl.Dockerfile + - cp detectors.yaml containers/oneapi + - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${NIGHTLY_TAG} + -f containers/jug/xl.Dockerfile --build-arg INTERNAL_TAG=${INTERNAL_TAG} + --build-arg BASEIMAGE="oneapi_jug_dev" --build-arg JUG_VERSION=nightly-$(date +%Y-%m-%d_%H-%M-%S)-${INTERNAL_TAG}-$(git rev-parse HEAD) --build-arg NIGHTLY=1 containers/oneapi @@ -606,8 +608,7 @@ cleanup: stage: finalize dependencies: - version - rules: - - when: always + when: always script: ## remove the pipeline specific export from eicweb if needed - echo "Cleaning up pipeline specific docker tags if needed" diff --git a/containers/jug/xl.Dockerfile b/containers/jug/xl.Dockerfile index 8df688ea22ade051f997ef305f584e2b4bfae443..0fbf26367130d4bb21813a4f7d7348c501f7c1d4 100644 --- a/containers/jug/xl.Dockerfile +++ b/containers/jug/xl.Dockerfile @@ -1,12 +1,13 @@ #syntax=docker/dockerfile:1.2 ARG DOCKER_REGISTRY="eicweb.phy.anl.gov:4567/containers/eic_container/" -ARG INTERNAL_TAG="testing" +ARG INTERNAL_TAG="testing" +ARG BASEIMAGE="jug_dev" ## ======================================================================================== ## STAGE1: spack builder image ## EIC builder image with spack ## ======================================================================================== -FROM ${DOCKER_REGISTRY}jug_dev:${INTERNAL_TAG} +FROM ${DOCKER_REGISTRY}${BASEIMAGE}:${INTERNAL_TAG} ARG EICWEB="https://eicweb.phy.anl.gov/api/v4/projects" ARG JUGGLER_VERSION="master" diff --git a/containers/oneapi/onedev.Dockerfile b/containers/oneapi/onedev.Dockerfile index e2eb45cbbf09c272ff8f17183aeded9b95d985eb..18c66620683b81d894220c34ea66abb8505db954 100644 --- a/containers/oneapi/onedev.Dockerfile +++ b/containers/oneapi/onedev.Dockerfile @@ -237,7 +237,7 @@ RUN chmod a+x /usr/local/bin/mc ## Use Intel's HPC-kit and Create Lean image from staging ## ======================================================================================== -FROM intel/oneapi-basekit:2022.2-devel-ubuntu20.04 AS oneapi +FROM intel/oneapi-hpckit:2022.2-devel-ubuntu20.04 AS oneapi COPY bashrc /root/.bashrc @@ -250,7 +250,7 @@ ENV CLICOLOR_FORCE=1 \ ## Install additional packages. Remove the auto-cleanup functionality ## for docker, as we're using the new buildkit cache instead. ## We install gcc-10 and g++-10 as they are not installed by default in -## Ubuntu 20.04 +## Ubuntu 20.04. ## TODO: libyaml-cpp-dev is a dependency for afterburner. We can probably remove ## this once afterburner is added to spack RUN --mount=type=cache,target=/var/cache/apt \ diff --git a/containers/oneapi/onexl.Dockerfile b/containers/oneapi/onexl.Dockerfile deleted file mode 100644 index 5db29d7f55c14073660a0a88742cde0ba40378cb..0000000000000000000000000000000000000000 --- a/containers/oneapi/onexl.Dockerfile +++ /dev/null @@ -1,116 +0,0 @@ -#syntax=docker/dockerfile:1.2 -ARG DOCKER_REGISTRY="eicweb.phy.anl.gov:4567/containers/eic_container/" -# Internal Tag will be set by GitLab CI -ARG INTERNAL_TAG="testing" - -## ======================================================================================== -## STAGE 1: Base XL Image off jug_dev -## Clone repos and build using cmake -## ======================================================================================== -FROM ${DOCKER_REGISTRY}oneapi_jug_dev:${INTERNAL_TAG} - -ARG EICWEB="https://eicweb.phy.anl.gov/api/v4/projects" -ARG JUGGLER_VERSION="master" -ARG NPDET_VERSION="master" - -## version will automatically bust cache for nightly, as it includes -## the date -ARG JUG_VERSION=1 - -ADD ${EICWEB}/18/repository/tree?ref=${NPDET_VERSION} /tmp/18.json -RUN cd /tmp \ - && echo " - jug_xl: ${JUG_VERSION}" >> /etc/jug_info \ - && echo "INSTALLING NPDET" \ - && git clone -b ${NPDET_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/NPDet.git \ - && cmake -B build -S NPDet -DCMAKE_CXX_STANDARD=17 \ - && cmake --build build -j12 -- install \ - && pushd NPDet \ - && echo " - NPDet: ${NPDET_VERSION}-$(git rev-parse HEAD)">> /etc/jug_info \ - && popd \ - && rm -rf build NPDet - -ADD ${EICWEB}/369/repository/tree?ref=${JUGGLER_VERSION} /tmp/369.json -RUN cd /tmp \ - && echo "INSTALLING JUGGLER" \ - && git clone -b ${JUGGLER_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/juggler.git \ - && cmake -B build -S juggler \ - -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build build -j12 -- install \ - && pushd juggler \ - && echo " - Juggler: ${JUGGLER_VERSION}-$(git rev-parse HEAD)" \ - >> /etc/jug_info \ - && popd \ - && rm -rf build juggler - -## also install detector/ip geometries into opt -ARG NIGHTLY='' -ADD ${EICWEB}/473/repository/tree?ref=master /tmp/473.json -ADD ${EICWEB}/452/repository/tree?ref=master /tmp/452.json -COPY setup_detectors.py /tmp -COPY detectors.yaml /tmp -RUN cd /tmp \ - && [ "z$NIGHTLY" = "z1" ] && NIGHTLY_FLAG="--nightly" || NIGHTLY_FLAG="" \ - && /tmp/setup_detectors.py --prefix /opt/detector --config /tmp/detectors.yaml \ - $NIGHTLY_FLAG \ - && rm /tmp/setup_detectors.py - -## Install benchmarks into the container - -ARG BENCHMARK_COM_VERSION="master" -ARG BENCHMARK_DET_VERSION="master" -ARG BENCHMARK_REC_VERSION="master" -ARG BENCHMARK_PHY_VERSION="master" - -ADD ${EICWEB}/458/repository/tree?ref=${BENCHMARK_COM_VERSION} /tmp/485.json -ADD ${EICWEB}/399/repository/tree?ref=${BENCHMARK_DET_VERSION} /tmp/399.json -ADD ${EICWEB}/408/repository/tree?ref=${BENCHMARK_REC_VERSION} /tmp/408.json -ADD ${EICWEB}/400/repository/tree?ref=${BENCHMARK_PHY_VERSION} /tmp/400.json -RUN mkdir -p /opt/benchmarks \ - && cd /opt/benchmarks \ - && git clone -b ${BENCHMARK_COM_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/benchmarks/common_bench.git \ - && mkdir -p /opt/benchmarks \ - && cd /opt/benchmarks \ - && git clone -b ${BENCHMARK_DET_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks.git \ - && ln -sf ../common_bench detector_benchmarks/.local \ - && mkdir -p /opt/benchmarks \ - && cd /opt/benchmarks \ - && git clone -b ${BENCHMARK_REC_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/benchmarks/reconstruction_benchmarks.git \ - && ln -sf ../common_bench reconstruction_benchmarks/.local \ - && mkdir -p /opt/benchmarks \ - && cd /opt/benchmarks \ - && git clone -b ${BENCHMARK_PHY_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/benchmarks/physics_benchmarks.git \ - && ln -sf ../common_bench physics_benchmarks/.local - -## Install campaigns into the container - -ARG CAMPAIGNS_SINGLE_VERSION="main" -ARG CAMPAIGNS_HEPMC3_VERSION="main" -ARG CAMPAIGNS_CONDOR_VERSION="main" -ARG CAMPAIGNS_SLURM_VERSION="main" - -ADD ${EICWEB}/482/repository/tree?ref=${CAMPAIGNS_SINGLE_VERSION} /tmp/482.json -ADD ${EICWEB}/483/repository/tree?ref=${CAMPAIGNS_HEPMC3_VERSION} /tmp/483.json -ADD ${EICWEB}/484/repository/tree?ref=${CAMPAIGNS_CONDOR_VERSION} /tmp/484.json -ADD ${EICWEB}/485/repository/tree?ref=${CAMPAIGNS_SLURM_VERSION} /tmp/485.json -RUN mkdir -p /opt/campaigns \ - && cd /opt/campaigns \ - && git clone -b ${CAMPAIGNS_SINGLE_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/campaigns/single.git \ - && mkdir -p /opt/campaigns \ - && cd /opt/campaigns \ - && git clone -b ${CAMPAIGNS_HEPMC3_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/campaigns/hepmc3.git \ - && mkdir -p /opt/campaigns \ - && cd /opt/campaigns \ - && git clone -b ${CAMPAIGNS_CONDOR_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/campaigns/condor.git \ - && mkdir -p /opt/campaigns \ - && cd /opt/campaigns \ - && git clone -b ${CAMPAIGNS_SLURM_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/campaigns/slurm.git