Skip to content
Snippets Groups Projects
Commit 11de0974 authored by Wouter Deconinck's avatar Wouter Deconinck
Browse files

feat: install juggler and eicrecon with spack

parent 807cc9dd
No related branches found
No related tags found
1 merge request!674feat: install juggler and eicrecon with spack
...@@ -311,7 +311,11 @@ jug_dev: ...@@ -311,7 +311,11 @@ jug_dev:
--build-arg EICSPACK_CHERRYPICKS="${EICSPACK_CHERRYPICKS}" --build-arg EICSPACK_CHERRYPICKS="${EICSPACK_CHERRYPICKS}"
--build-arg S3_ACCESS_KEY=${S3_ACCESS_KEY} --build-arg S3_ACCESS_KEY=${S3_ACCESS_KEY}
--build-arg S3_SECRET_KEY=${S3_SECRET_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 ENV=${ENV}
--build-arg jobs=${JOBS} --build-arg jobs=${JOBS}
--build-context spack-environment=spack-environment --build-context spack-environment=spack-environment
...@@ -345,9 +349,7 @@ jug_xl:default: ...@@ -345,9 +349,7 @@ jug_xl:default:
--build-arg DOCKER_REGISTRY=${CI_REGISTRY}/${CI_PROJECT_PATH}/ --build-arg DOCKER_REGISTRY=${CI_REGISTRY}/${CI_PROJECT_PATH}/
--build-arg BASE_IMAGE=${BASE_IMAGE} --build-arg BASE_IMAGE=${BASE_IMAGE}
--build-arg INTERNAL_TAG=${INTERNAL_TAG}-default --build-arg INTERNAL_TAG=${INTERNAL_TAG}-default
--build-arg JUGGLER_VERSION=${JUGGLER_VERSION} --build-arg JUG_VERSION=${EXPORT_TAG}-$(git rev-parse HEAD)
--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 jobs=${JOBS} --build-arg jobs=${JOBS}
--build-context detectors=. --build-context detectors=.
containers/jug containers/jug
......
...@@ -105,6 +105,8 @@ FROM spack as builder ...@@ -105,6 +105,8 @@ FROM spack as builder
## Setup our custom environment (secret mount for write-enabled mirror) ## Setup our custom environment (secret mount for write-enabled mirror)
COPY --from=spack-environment . /opt/spack-environment/ COPY --from=spack-environment . /opt/spack-environment/
ARG ENV=dev ARG ENV=dev
ARG JUGGLER_VERSION="main"
ARG EICRECON_VERSION="main"
ENV SPACK_ENV=/opt/spack-environment/${ENV} ENV SPACK_ENV=/opt/spack-environment/${ENV}
RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \ RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \
--mount=type=cache,target=/var/cache/spack \ --mount=type=cache,target=/var/cache/spack \
...@@ -112,6 +114,8 @@ RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \ ...@@ -112,6 +114,8 @@ RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \
source $SPACK_ROOT/share/spack/setup-env.sh \ source $SPACK_ROOT/share/spack/setup-env.sh \
&& export CCACHE_DIR=/ccache \ && export CCACHE_DIR=/ccache \
&& spack env activate --dir ${SPACK_ENV} \ && 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 \ && make --jobs ${jobs} --keep-going --directory /opt/spack-environment \
SPACK_ENV=${SPACK_ENV} \ SPACK_ENV=${SPACK_ENV} \
BUILDCACHE_MIRROR="local eics3rw" \ BUILDCACHE_MIRROR="local eics3rw" \
......
...@@ -11,8 +11,6 @@ FROM ${DOCKER_REGISTRY}${BASE_IMAGE}:${INTERNAL_TAG} ...@@ -11,8 +11,6 @@ FROM ${DOCKER_REGISTRY}${BASE_IMAGE}:${INTERNAL_TAG}
ARG TARGETPLATFORM ARG TARGETPLATFORM
ARG EICWEB="https://eicweb.phy.anl.gov/api/v4/projects" ARG EICWEB="https://eicweb.phy.anl.gov/api/v4/projects"
ARG JUGGLER_VERSION="main"
ARG EICRECON_VERSION="main"
ARG jobs=8 ARG jobs=8
## version will automatically bust cache for nightly, as it includes ## version will automatically bust cache for nightly, as it includes
...@@ -22,48 +20,6 @@ ARG JUG_VERSION=1 ...@@ -22,48 +20,6 @@ ARG JUG_VERSION=1
RUN cd /tmp \ RUN cd /tmp \
&& echo " - jug_xl: ${JUG_VERSION}" >> /etc/jug_info && 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 ## also install detector/ip geometries into opt
ARG NIGHTLY='' ARG NIGHTLY=''
## cache bust when updated repositories ## cache bust when updated repositories
......
...@@ -25,6 +25,7 @@ ea1439dfa11a3996c9927ed792dc9fe4b7efc1b8 ...@@ -25,6 +25,7 @@ ea1439dfa11a3996c9927ed792dc9fe4b7efc1b8
ed76eab6943221f17776fd8d128ade6ba69e492c ed76eab6943221f17776fd8d128ade6ba69e492c
6c5d125cb06a86ce05bec27ae9fb9b07103bc1c5 6c5d125cb06a86ce05bec27ae9fb9b07103bc1c5
e3e7609af4903be7df42b6ae5ccf9a20293503d2 e3e7609af4903be7df42b6ae5ccf9a20293503d2
df4a2457a41e7ab634e86d3148d8b22a9f433a6a
--- ---
## Ref: https://github.com/spack/spack/commit/[hash] ## Ref: https://github.com/spack/spack/commit/[hash]
## [hash]: [description] ## [hash]: [description]
...@@ -45,3 +46,4 @@ e3e7609af4903be7df42b6ae5ccf9a20293503d2 ...@@ -45,3 +46,4 @@ e3e7609af4903be7df42b6ae5ccf9a20293503d2
## ed76eab6943221f17776fd8d128ade6ba69e492c: geant4: new version 11.1.2 ## ed76eab6943221f17776fd8d128ade6ba69e492c: geant4: new version 11.1.2
## 6c5d125cb06a86ce05bec27ae9fb9b07103bc1c5: cernlib: new variant shared ## 6c5d125cb06a86ce05bec27ae9fb9b07103bc1c5: cernlib: new variant shared
## e3e7609af4903be7df42b6ae5ccf9a20293503d2: edm4hep: Add version 0.9 ## e3e7609af4903be7df42b6ae5ccf9a20293503d2: edm4hep: Add version 0.9
## df4a2457a41e7ab634e86d3148d8b22a9f433a6a: Fix broken semver regex
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment