diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0ba6cf93f3220d73c9b09d0ac761e07dfcfe7642..5f052047e4e4b3993ae21c7b32ee2d8ba0ab1952 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -337,8 +337,12 @@ jug_dev: --build-arg S3_SECRET_KEY=${S3_SECRET_KEY} --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} + ${JUGGLER_VERSION:+--build-arg JUGGLER_VERSION=${JUGGLER_VERSION}} + ${EICRECON_VERSION:+--build-arg EICRECON_VERSION=${EICRECON_VERSION}} + } + ${IF_BUILD_NIGHTLY:+ + --build-arg JUGGLER_VERSION=main + --build-arg EICRECON_VERSION=main } --build-arg ENV=${ENV} --build-arg jobs=${JOBS} diff --git a/containers/jug/dev.Dockerfile b/containers/jug/dev.Dockerfile index 3993994b19ba3db40329b1d8ec4f962eb1724d4a..16fe2ab0d2626fc7a85fb5a07c5eefca659eb379 100644 --- a/containers/jug/dev.Dockerfile +++ b/containers/jug/dev.Dockerfile @@ -133,10 +133,6 @@ 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" -ADD https://eicweb.phy.anl.gov/api/v4/projects/EIC%2Fjuggler/repository/tree?ref=${JUGGLER_VERSION} /tmp/juggler.json -ARG EICRECON_VERSION="main" -ADD https://api.github.com/repos/eic/eicrecon/commits/${EICRECON_VERSION} /tmp/eicrecon.json ENV SPACK_ENV=/opt/spack-environment/${ENV} RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \ --mount=type=cache,target=/var/cache/spack \ @@ -147,8 +143,32 @@ export CCACHE_DIR=/ccache spack buildcache update-index local spack buildcache update-index eics3rw spack env activate --dir ${SPACK_ENV} -spack add juggler@git.${JUGGLER_VERSION} -spack add eicrecon@git.${EICRECON_VERSION} +spack concretize --fresh --force --quiet +make --jobs ${jobs} --keep-going --directory /opt/spack-environment SPACK_ENV=${SPACK_ENV} BUILDCACHE_MIRROR="local eics3rw" +ccache --show-stats +ccache --zero-stats +EOF + +## Setup our custom environment with custom versions (on top of cached layer) +ARG JUGGLER_VERSION="" +ARG EICRECON_VERSION="" +ADD https://eicweb.phy.anl.gov/api/v4/projects/EIC%2Fjuggler/repository/tree?ref=${JUGGLER_VERSION} /tmp/juggler.json +ADD https://api.github.com/repos/eic/eicrecon/commits/${EICRECON_VERSION} /tmp/eicrecon.json +RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \ + --mount=type=cache,target=/var/cache/spack \ + --mount=type=secret,id=mirrors,target=/opt/spack/etc/spack/mirrors.yaml \ + <<EOF +source $SPACK_ROOT/share/spack/setup-env.sh +export CCACHE_DIR=/ccache +spack buildcache update-index local +spack buildcache update-index eics3rw +spack env activate --dir ${SPACK_ENV} +if [ -n ${JUGGLER_VERSION} ] ; then + spack rm juggler && spack add juggler@git.${JUGGLER_VERSION} +fi +if [ -n ${EICRECON_VERSION} ] ; then + spack rm eicrecon && spack add eicrecon@git.${EICRECON_VERSION} +fi spack concretize --fresh --force --quiet make --jobs ${jobs} --keep-going --directory /opt/spack-environment SPACK_ENV=${SPACK_ENV} BUILDCACHE_MIRROR="local eics3rw" ccache --show-stats diff --git a/spack-environment/dev/spack.yaml b/spack-environment/dev/spack.yaml index 230fa067a16841aedc5b043e43804ebd4ae1537e..583d3532db3d51ade7e4faf3375bf825b4e4cb44 100644 --- a/spack-environment/dev/spack.yaml +++ b/spack-environment/dev/spack.yaml @@ -24,6 +24,7 @@ spack: - edm4eic - edm4hep - eic-smear + - eicrecon - eigen - emacs - fastjet @@ -39,6 +40,7 @@ spack: - irt - iwyu - jana2 + - juggler - lcov - lhapdf - madx diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index e026404b41886c759bd93a015c33207cde29aaa3..405e50ab64c20cbd7e6cf002ba2eefb1448d3fd7 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -92,6 +92,9 @@ packages: eic-smear: require: - '@1.1.12' + eicrecon: + require: + - '@1.6.1' eigen: require: - '@3.4.0' @@ -157,6 +160,7 @@ packages: - -ipo +podio +root +zmq juggler: require: + - '@10.1.0' - cxxstd=20 lapack: require: diff --git a/spack-environment/prod/spack.yaml b/spack-environment/prod/spack.yaml index 3f05ab1b4fc24dc4faf8c85edd1997749d87c85b..c56f72a99dc2fe110c2bc875f56d0e256fda8860 100644 --- a/spack-environment/prod/spack.yaml +++ b/spack-environment/prod/spack.yaml @@ -1,5 +1,5 @@ spack: - include: + include: - ../concretizer.yaml - ../packages.yaml config: @@ -9,6 +9,7 @@ spack: - cmake - dd4hep -ddeve - edm4eic + - eicrecon - fastjet - fjcontrib - gaudi @@ -17,6 +18,7 @@ spack: - intel-tbb - irt - jana2 + - juggler - npsim -geocad - py-boto3 - py-jinja2