diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3d62d62798da3ba120867bcf9594865254c35397..cd1bf270c935a5bf5b6b5c8dc000b4f71d9f021f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -311,7 +311,11 @@ jug_dev: --build-arg EICSPACK_CHERRYPICKS="${EICSPACK_CHERRYPICKS}" --build-arg S3_ACCESS_KEY=${S3_ACCESS_KEY} --build-arg S3_SECRET_KEY=${S3_SECRET_KEY} - --build-arg JUG_VERSION=${EXPORT_TAG}-${BUILD_TYPE}-$(git rev-parse HEAD)-$(date +%Y-%m-%d_%H-%M-%S) + --build-arg JUG_VERSION=${EXPORT_TAG}-${BUILD_TYPE}-$(git rev-parse HEAD) + ${IF_BUILD_DEFAULT:+ + --build-arg JUGGLER_VERSION=${JUGGLER_VERSION} + --build-arg EICRECON_VERSION=${EICRECON_VERSION} + } --build-arg ENV=${ENV} --build-arg jobs=${JOBS} --build-context spack-environment=spack-environment @@ -345,9 +349,7 @@ jug_xl:default: --build-arg DOCKER_REGISTRY=${CI_REGISTRY}/${CI_PROJECT_PATH}/ --build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg INTERNAL_TAG=${INTERNAL_TAG}-default - --build-arg JUGGLER_VERSION=${JUGGLER_VERSION} - --build-arg EICRECON_VERSION=${EICRECON_VERSION} - --build-arg JUG_VERSION=${EXPORT_TAG}-$(git rev-parse HEAD)-$(date +%Y-%m-%d_%H-%M-%S) + --build-arg JUG_VERSION=${EXPORT_TAG}-$(git rev-parse HEAD) --build-arg jobs=${JOBS} --build-context detectors=. containers/jug diff --git a/containers/jug/dev.Dockerfile b/containers/jug/dev.Dockerfile index d07f838514f4f595676fc848d06e020256fa0375..b383137c07322354e0be2698f8508401ac6eb820 100644 --- a/containers/jug/dev.Dockerfile +++ b/containers/jug/dev.Dockerfile @@ -105,6 +105,8 @@ FROM spack as builder ## Setup our custom environment (secret mount for write-enabled mirror) COPY --from=spack-environment . /opt/spack-environment/ ARG ENV=dev +ARG JUGGLER_VERSION="main" +ARG EICRECON_VERSION="main" ENV SPACK_ENV=/opt/spack-environment/${ENV} RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \ --mount=type=cache,target=/var/cache/spack \ @@ -112,6 +114,8 @@ RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \ source $SPACK_ROOT/share/spack/setup-env.sh \ && export CCACHE_DIR=/ccache \ && spack env activate --dir ${SPACK_ENV} \ + && spack add juggler@git.${JUGGLER_VERSION} \ + && spack add eicrecon@git.${EICRECON_VERSION} \ && make --jobs ${jobs} --keep-going --directory /opt/spack-environment \ SPACK_ENV=${SPACK_ENV} \ BUILDCACHE_MIRROR="local eics3rw" \ diff --git a/containers/jug/xl.Dockerfile b/containers/jug/xl.Dockerfile index 73e99d015bb2a7269601c1c68711a517f4d8f745..bbe6d3b8c8672aa99a5590ea6cf6d03c7c101a57 100644 --- a/containers/jug/xl.Dockerfile +++ b/containers/jug/xl.Dockerfile @@ -11,8 +11,6 @@ FROM ${DOCKER_REGISTRY}${BASE_IMAGE}:${INTERNAL_TAG} ARG TARGETPLATFORM ARG EICWEB="https://eicweb.phy.anl.gov/api/v4/projects" -ARG JUGGLER_VERSION="main" -ARG EICRECON_VERSION="main" ARG jobs=8 ## version will automatically bust cache for nightly, as it includes @@ -22,48 +20,6 @@ ARG JUG_VERSION=1 RUN cd /tmp \ && echo " - jug_xl: ${JUG_VERSION}" >> /etc/jug_info -ADD ${EICWEB}/369/repository/tree?ref=${JUGGLER_VERSION} /tmp/369.json -RUN --mount=type=cache,target=/ccache/,sharing=locked,id=${TARGETPLATFORM} \ - cd /tmp \ - && echo "INSTALLING JUGGLER" \ - && git clone -b ${JUGGLER_VERSION} --depth 1 \ - https://eicweb.phy.anl.gov/EIC/juggler.git \ - && export CCACHE_DIR=/ccache \ - && cmake -B build -S juggler \ - -DCMAKE_CXX_FLAGS="-Wno-psabi" \ - -DCMAKE_CXX_STANDARD=17 \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - && cmake --build build -j${jobs} -- install \ - && pushd juggler \ - && echo " - juggler: ${JUGGLER_VERSION}-$(git rev-parse HEAD)" \ - >> /etc/jug_info \ - && popd \ - && rm -rf build juggler - -ADD https://api.github.com/repos/eic/eicrecon/commits/${EICRECON_VERSION} /tmp/eicrecon.json -RUN --mount=type=cache,target=/ccache/,sharing=locked,id=${TARGETPLATFORM} \ - cd /tmp \ - && echo "INSTALLING EICRECON" \ - && git clone -b ${EICRECON_VERSION} --depth 1 \ - https://github.com/eic/eicrecon.git \ - && export CCACHE_DIR=/ccache \ - && cmake -B build -S eicrecon \ - -DCMAKE_CXX_FLAGS="-Wno-psabi" \ - -DCMAKE_CXX_STANDARD=17 \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - && cmake --build build -j${jobs} -- install \ - && pushd eicrecon \ - && echo " - eicrecon: ${EICRECON_VERSION}-$(git rev-parse HEAD)" \ - >> /etc/jug_info \ - && echo "export JANA_PLUGIN_PATH=/usr/local/lib/EICrecon/plugins" \ - > /etc/profile.d/z12_eicrecon.sh \ - && popd \ - && rm -rf build eicrecon - ## also install detector/ip geometries into opt ARG NIGHTLY='' ## cache bust when updated repositories diff --git a/spack.sh b/spack.sh index 34a43a18e1e188d978aead17e015a3ac064eefcc..eb8f0bb7017c359e4dbd7637f4c232bed4c7bad4 100644 --- a/spack.sh +++ b/spack.sh @@ -25,6 +25,7 @@ ea1439dfa11a3996c9927ed792dc9fe4b7efc1b8 ed76eab6943221f17776fd8d128ade6ba69e492c 6c5d125cb06a86ce05bec27ae9fb9b07103bc1c5 e3e7609af4903be7df42b6ae5ccf9a20293503d2 +df4a2457a41e7ab634e86d3148d8b22a9f433a6a --- ## Ref: https://github.com/spack/spack/commit/[hash] ## [hash]: [description] @@ -45,3 +46,4 @@ e3e7609af4903be7df42b6ae5ccf9a20293503d2 ## ed76eab6943221f17776fd8d128ade6ba69e492c: geant4: new version 11.1.2 ## 6c5d125cb06a86ce05bec27ae9fb9b07103bc1c5: cernlib: new variant shared ## e3e7609af4903be7df42b6ae5ccf9a20293503d2: edm4hep: Add version 0.9 +## df4a2457a41e7ab634e86d3148d8b22a9f433a6a: Fix broken semver regex