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

Merge branch 'master' into 'root-6.28.04'

# Conflicts:
#   spack-environment/dev/spack.yaml
parents 8b51e94c acaf8fd9
No related branches found
No related tags found
No related merge requests found
...@@ -536,7 +536,9 @@ clean: ...@@ -536,7 +536,9 @@ clean:
- ./gitlab-ci/cleanup_registry.sh -i debian_testing_base -r 83 ${INTERNAL_TAG} - ./gitlab-ci/cleanup_registry.sh -i debian_testing_base -r 83 ${INTERNAL_TAG}
- ./gitlab-ci/cleanup_registry.sh -i debian_stable_base -r 92 ${INTERNAL_TAG} - ./gitlab-ci/cleanup_registry.sh -i debian_stable_base -r 92 ${INTERNAL_TAG}
- ./gitlab-ci/cleanup_registry.sh -i jug_dev -r 68 ${INTERNAL_TAG} - ./gitlab-ci/cleanup_registry.sh -i jug_dev -r 68 ${INTERNAL_TAG}
- ./gitlab-ci/cleanup_registry.sh -i jug_dev -r 68 ${INTERNAL_TAG}-nightly
- ./gitlab-ci/cleanup_registry.sh -i jug_xl -r 69 ${INTERNAL_TAG} - ./gitlab-ci/cleanup_registry.sh -i jug_xl -r 69 ${INTERNAL_TAG}
- ./gitlab-ci/cleanup_registry.sh -i jug_xl -r 69 ${INTERNAL_TAG}-nightly
- | - |
if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then
./gitlab-ci/cleanup_registry.sh -i jug_xl -r 69 ${NIGHTLY_TAG} ./gitlab-ci/cleanup_registry.sh -i jug_xl -r 69 ${NIGHTLY_TAG}
......
...@@ -4,10 +4,10 @@ ARG BASE_IMAGE="debian_stable_base" ...@@ -4,10 +4,10 @@ ARG BASE_IMAGE="debian_stable_base"
ARG INTERNAL_TAG="testing" ARG INTERNAL_TAG="testing"
## ======================================================================================== ## ========================================================================================
## STAGE1: spack builder image ## STAGE0: spack image
## EIC builder image with spack ## EIC spack image with spack and eic-spack repositories
## ======================================================================================== ## ========================================================================================
FROM ${DOCKER_REGISTRY}${BASE_IMAGE}:${INTERNAL_TAG} as builder FROM ${DOCKER_REGISTRY}${BASE_IMAGE}:${INTERNAL_TAG} as spack
ARG TARGETPLATFORM ARG TARGETPLATFORM
## install some extra spack dependencies ## install some extra spack dependencies
...@@ -20,8 +20,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM} ...@@ -20,8 +20,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}
python3-dev \ python3-dev \
python3-distutils \ python3-distutils \
python3-boto3 \ python3-boto3 \
python-is-python3 \ python-is-python3
&& rm -rf /var/lib/apt/lists/*
## Setup spack ## Setup spack
ENV SPACK_ROOT=/opt/spack ENV SPACK_ROOT=/opt/spack
...@@ -43,6 +42,7 @@ RUN git clone https://github.com/${SPACK_ORGREPO}.git ${SPACK_ROOT} \ ...@@ -43,6 +42,7 @@ RUN git clone https://github.com/${SPACK_ORGREPO}.git ${SPACK_ROOT} \
SHELL ["docker-shell"] SHELL ["docker-shell"]
## Setup build configuration
ARG jobs=64 ARG jobs=64
RUN declare -A target=( \ RUN declare -A target=( \
["linux/amd64"]="x86_64_v2" \ ["linux/amd64"]="x86_64_v2" \
...@@ -62,8 +62,8 @@ RUN declare -A target=( \ ...@@ -62,8 +62,8 @@ RUN declare -A target=( \
&& spack config blame compilers && spack config blame compilers
## Setup local buildcache mirrors ## Setup local buildcache mirrors
RUN --mount=type=cache,target=/var/cache/spack-mirror \ RUN --mount=type=cache,target=/var/cache/spack \
spack mirror add local /var/cache/spack-mirror/${SPACK_VERSION} \ spack mirror add local /var/cache/spack/mirror/${SPACK_VERSION} \
&& spack buildcache update-index local \ && spack buildcache update-index local \
&& spack mirror list && spack mirror list
...@@ -72,7 +72,7 @@ RUN --mount=type=cache,target=/var/cache/spack-mirror \ ...@@ -72,7 +72,7 @@ RUN --mount=type=cache,target=/var/cache/spack-mirror \
## - the write-enabled mirror is provided later as a secret mount ## - the write-enabled mirror is provided later as a secret mount
ARG S3_ACCESS_KEY="" ARG S3_ACCESS_KEY=""
ARG S3_SECRET_KEY="" ARG S3_SECRET_KEY=""
RUN --mount=type=cache,target=/var/cache/spack-mirror \ RUN --mount=type=cache,target=/var/cache/spack \
if [ -n "${S3_ACCESS_KEY}" ] ; then \ if [ -n "${S3_ACCESS_KEY}" ] ; then \
spack mirror add --scope site \ spack mirror add --scope site \
--s3-endpoint-url https://eics3.sdcc.bnl.gov:9000 \ --s3-endpoint-url https://eics3.sdcc.bnl.gov:9000 \
...@@ -82,12 +82,7 @@ RUN --mount=type=cache,target=/var/cache/spack-mirror \ ...@@ -82,12 +82,7 @@ RUN --mount=type=cache,target=/var/cache/spack-mirror \
; fi \ ; fi \
&& spack mirror list && spack mirror list
## This variable will change whenever either spack.yaml or our spack package ## Setup eic-spack
## overrides change, triggering a rebuild
ARG CACHE_BUST="hash"
ARG CACHE_NUKE=""
## Setup our custom package overrides
ENV EICSPACK_ROOT=${SPACK_ROOT}/var/spack/repos/eic-spack ENV EICSPACK_ROOT=${SPACK_ROOT}/var/spack/repos/eic-spack
ARG EICSPACK_ORGREPO="eic/eic-spack" ARG EICSPACK_ORGREPO="eic/eic-spack"
ARG EICSPACK_VERSION="$SPACK_VERSION" ARG EICSPACK_VERSION="$SPACK_VERSION"
...@@ -100,12 +95,18 @@ RUN git clone https://github.com/${EICSPACK_ORGREPO}.git ${EICSPACK_ROOT} \ ...@@ -100,12 +95,18 @@ RUN git clone https://github.com/${EICSPACK_ORGREPO}.git ${EICSPACK_ROOT} \
fi \ fi \
&& spack repo add --scope site "${EICSPACK_ROOT}" && spack repo add --scope site "${EICSPACK_ROOT}"
## ========================================================================================
## STAGE1: builder
## EIC builder image with spack environment
## ========================================================================================
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
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-mirror \ --mount=type=cache,target=/var/cache/spack \
--mount=type=secret,id=mirrors,target=/opt/spack/etc/spack/mirrors.yaml \ --mount=type=secret,id=mirrors,target=/opt/spack/etc/spack/mirrors.yaml \
source $SPACK_ROOT/share/spack/setup-env.sh \ source $SPACK_ROOT/share/spack/setup-env.sh \
&& export CCACHE_DIR=/ccache \ && export CCACHE_DIR=/ccache \
...@@ -116,7 +117,7 @@ RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \ ...@@ -116,7 +117,7 @@ RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM} \
&& ccache --show-stats && ccache --show-stats
## Create view at /usr/local ## Create view at /usr/local
RUN --mount=type=cache,target=/var/cache/spack-mirror \ RUN --mount=type=cache,target=/var/cache/spack \
source $SPACK_ROOT/share/spack/setup-env.sh \ source $SPACK_ROOT/share/spack/setup-env.sh \
&& spack env activate --dir ${SPACK_ENV} \ && spack env activate --dir ${SPACK_ENV} \
&& rm -r /usr/local \ && rm -r /usr/local \
...@@ -125,9 +126,10 @@ RUN --mount=type=cache,target=/var/cache/spack-mirror \ ...@@ -125,9 +126,10 @@ RUN --mount=type=cache,target=/var/cache/spack-mirror \
## Optional, nuke the buildcache after install, before (re)caching ## Optional, nuke the buildcache after install, before (re)caching
## This is useful when going to completely different containers, ## This is useful when going to completely different containers,
## or intermittently to keep the buildcache step from taking too much time ## or intermittently to keep the buildcache step from taking too much time
RUN --mount=type=cache,target=/var/cache/spack-mirror,sharing=locked \ ARG CACHE_NUKE=""
RUN --mount=type=cache,target=/var/cache/spack,sharing=locked \
[ -z "${CACHE_NUKE}" ] \ [ -z "${CACHE_NUKE}" ] \
|| rm -rf /var/cache/spack-mirror/${SPACK_VERSION}/build_cache/* || rm -rf /var/cache/spack/mirror/${SPACK_VERSION}/build_cache/*
## Extra post-spack steps: ## Extra post-spack steps:
## - Python packages ## - Python packages
......
concretizer: # This file contains the preferences for the concretizer
# - we disable reuse of build cache products during concretization
# (but build cache products will get used if available during install)
# - we want unified environments that can be installed in a simple view
#
concretizer:
reuse: false
unify: true unify: true
...@@ -3,85 +3,76 @@ spack: ...@@ -3,85 +3,76 @@ spack:
- ../concretizer.yaml - ../concretizer.yaml
- ../packages.yaml - ../packages.yaml
specs: specs:
- acts@21.1.1 +dd4hep +examples +fatras +geant4 +identification +json +python +tgeo - acts
- actsvg@0.4.26 +examples - actsvg
- acts-dd4hep@1.0.1 - acts-dd4hep
- afterburner@0.1.2 +root +zlib - afterburner
- cairo@1.16.0 +fc+ft+X+pdf+gobject - cairo
- catch2@3.0.1 -ipo - catch2
- cernlib@2022.11.08.0-free - cernlib
- clhep@2.4.6.4 cxxstd=17 - cli11
- cli11@2.3.2 - cmake
- cmake@3.26.3 - cnpy
- cnpy@master #- cppcoro
#- cppcoro@git.10bbcdbf2be3ad3aa56febcf4c7662d771460a99 - dawn
- dawn@3_91a - dawncut
- dawncut@1_54a - dd4hep
- dd4hep@1.25.1 +ddg4 +ddcad -frames +hepmc3 +lcio +xercesc - dpmjet
- dpmjet@19.3.5 - edm4eic
- edm4eic@2.0.0 cxxstd=17 - edm4hep
- edm4hep@0.7.2 cxxstd=17 - eic-smear
- eic-smear@1.1.10 - eigen
- eigen@3.4.0 - emacs
- emacs@28.2 - fastjet
- fastjet@3.4.0 - fjcontrib
- fjcontrib@1.051 - fmt
- fmt@9.1.0 +shared cxxstd=17 - gaudi
- gaudi@36.10 +aida - gdb
- gdb@12.1 -debuginfod - geant4
- geant4@11.1.1 cxxstd=17 +opengl -vecgeom +x11 +qt +threads - graphviz
- graphviz@8.0.1 - hepmc3
- hepmc3@3.2.6 +python +rootio - heppdt
- heppdt@2.06.01 - imagemagick
- imagemagick@7.0.8-7 - irt
- intel-tbb@2020.3 - jana2
- irt@1.0.6 - lcov
- jana2@2.1.0 -ipo +podio +root +zmq - lhapdf
- lcov@1.16 - madx
- lhapdf@6.5.1 +python - npsim
- madx@5.08.01 - onnx
- mesa@22.1.6 +glx -llvm +opengl +opengles +osmesa - opencascade
- nlohmann-json@3.11.2 - osg-ca-certs
- npsim@1.1.0 +geocad +http - phonebook-cli
- onnx@1.13.1 - prmon
- opencascade@7.7.1 - pythia8
- osg-ca-certs@1.109.igtf.1.117 - py-awkward
- phonebook-cli@1.0.0 - py-boto3
- podio@0.16.5 - py-dask
- prmon@3.0.2 +plot - py-deepdiff
- pythia8@8.309 +fastjet - py-ipython
- python@3.10.10 - py-jinja2
- py-awkward@2.1.1 - py-jinja2-cli
- py-boto3@1.26.26 - py-jupyter-console
- py-dask@2021.6.2 - py-jupyterlab
- py-deepdiff@6.3.0 - py-lmfit
- py-ipython@8.11.0 - py-lxml
- py-jinja2@3.1.2 - py-matplotlib
- py-jinja2-cli@0.8.2 - py-mplhep
- py-jupyter-console@6.4.4 - py-htgettoken
- py-jupyterlab@3.4.8 - py-numpy
- py-lmfit@1.0.2 - py-pandas
- py-lxml@4.9.1 - py-pip
- py-matplotlib@3.7.1 - py-pre-commit
- py-mplhep@0.3.26 - py-pycairo
- py-htgettoken@1.16-33-g3788bb4 - py-pyyaml
- py-numpy@1.23.4 - py-scipy
- py-pandas@1.5.3 - py-seaborn
- py-pip@23.0 - py-toml
- py-pre-commit@2.20.0 - py-uproot
- py-pycairo@1.20.0 - py-yapf
- py-pyyaml@6.0 - root
- py-scipy@1.10.1 - spdlog
- py-seaborn@0.12.2 - stow
- py-toml@0.10.2 - tensorflow-lite
- py-uproot@5.0.5 - xrootd
- py-yapf@0.30.0
- qt@5.15.9 +opengl
- root@6.28.04 cxxstd=17
+fftw +fortran +gdml +http -ipo +mlp +pythia8
+root7 +tmva +vc -webgui +xrootd +ssl
- spdlog@1.11.0 +fmt_external
- stow@2.3.1
- tensorflow-lite@2.8.0 -xnnpack
- xrootd@5.5.5 cxxstd=17 -davix +python +scitokens-cpp
view: false view: false
# This file contains the preferences for versions and variants.
# Note that spack can deviate from these preferences for various reasons:
# - if explicitly requested in spack.yaml
# - if required to satisfy explicit requests
# - if reuse == true and build caches contain other versions/variants
# (this is disabled by concretize:reuse:false in concretizer.yaml)
#
# The variants in packages:all:variants are overridden by package-specific
# variants. Therefore, we use the pattern require:any_of:[+variant,@:]
# which sets the variant or doesn't do anything if not supported.
#
packages: packages:
all: all:
compiler: [gcc] compiler: [gcc]
variants: require:
+ipo build_type=Release - any_of: [+ipo, '@:']
- any_of: [build_type=Release, '@:']
acts:
require:
- '@21.1.1'
- +dd4hep +examples +fatras +geant4 +identification +json +python +tgeo
actsvg:
require:
- '@0.4.26'
- +examples
acts-dd4hep:
require:
- '@1.0.1'
afterburner:
require:
- '@0.1.2'
- +root +zlib
cairo:
require:
- '@1.16.0'
- +fc+ft+X+pdf+gobject
catch2:
require:
- '@3.0.1'
- -ipo
cernlib:
require:
- '@2022.11.08.0-free'
clhep:
require:
- '@2.4.6.4'
- cxxstd=17
cli11:
require:
- '@2.3.2'
cmake:
require:
- '@3.26.3'
cnpy:
require:
- '@master'
cppcoro:
require:
- '@git.10bbcdbf2be3ad3aa56febcf4c7662d771460a99'
dawn:
require:
- '@3_91a'
dawncut:
require:
- '@1_54a'
dd4hep:
require:
- '@1.25.1'
- +ddg4 +ddcad -frames +hepmc3 +lcio +xercesc
dpmjet:
require:
- '@19.3.5'
edm4eic:
require:
- '@2.0.0'
- cxxstd=17
edm4hep:
require:
- '@0.7.2'
- cxxstd=17
eic-smear:
require:
- '@1.1.10'
eigen:
require:
- '@3.4.0'
emacs:
require:
- '@28.2'
fastjet:
require:
- '@3.4.0'
fjcontrib:
require:
- '@1.051'
fmt:
require:
- '@9.1.0'
- +shared cxxstd=17
gaudi:
require:
- '@36.10'
- +aida
gdb:
require:
- '@12.1'
- -debuginfod
geant4:
require:
- '@11.1.1'
- cxxstd=17 +opengl -vecgeom +x11 +qt +threads
graphviz:
require:
- '@8.0.1'
hepmc3:
require:
- '@3.2.6'
- +python +rootio
heppdt:
require:
- '@2.06.01'
imagemagick:
require:
- '@7.0.8-7'
intel-tbb:
require:
- '@2020.3'
irt:
require:
- '@1.0.6'
jana2:
require:
- '@2.1.0'
- -ipo +podio +root +zmq
lcov:
require:
- '@1.16'
lhapdf:
require:
- '@6.5.1'
- +python
madx:
require:
- '@5.08.01'
mesa:
require:
- '@22.1.6'
- +glx -llvm +opengl +opengles +osmesa
nlohmann-json:
require:
- '@3.11.2'
npsim:
require:
- '@1.1.0'
- +geocad +http
onnx:
require:
- '@1.13.1'
opencascade:
require:
- '@7.7.1'
osg-ca-certs:
require:
- '@1.109.igtf.1.117'
phonebook-cli:
require:
- '@1.0.0'
podio:
require:
- '@0.16.5'
prmon:
require:
- '@3.0.2'
- +plot
pythia8:
require:
- '@8.309'
- +fastjet
python:
require:
- '@3.10.10'
py-awkward:
require:
- '@2.1.1'
py-boto3:
require:
- '@1.26.26'
py-dask:
require:
- '@2021.6.2'
py-deepdiff:
require:
- '@6.3.0'
py-ipython:
require:
- '@8.11.0'
py-jinja2:
require:
- '@3.1.2'
py-jinja2-cli:
require:
- '@0.8.2'
py-jupyter-console:
require:
- '@6.4.4'
py-jupyterlab:
require:
- '@3.4.8'
py-lmfit:
require:
- '@1.0.2'
py-lxml:
require:
- '@4.9.1'
py-matplotlib:
require:
- '@3.7.1'
py-mplhep:
require:
- '@0.3.26'
py-htgettoken:
require:
- '@1.16-33-g3788bb4'
py-numpy:
require:
- '@1.23.4'
py-pandas:
require:
- '@1.5.3'
py-pip:
require:
- '@23.0'
py-pre-commit:
require:
- '@2.20.0'
py-pycairo:
require:
- '@1.20.0'
py-pyyaml:
require:
- '@6.0'
py-scipy:
require:
- '@1.10.1'
py-seaborn:
require:
- '@0.12.2'
py-toml:
require:
- '@0.10.2'
py-uproot:
require:
- '@5.0.5'
py-yapf:
require:
- '@0.30.0'
qt:
require:
- '@5.15.9'
- +opengl
root:
require:
- '@6.26.10'
- cxxstd=17 +fftw +fortran +gdml +http -ipo +mlp +pythia8 +root7 +tmva +vc -webgui +xrootd +ssl
spdlog:
require:
- '@1.11.0'
- +fmt_external
stow:
require:
- '@2.3.1'
tensorflow-lite:
require:
- '@2.8.0'
- -xnnpack
xrootd:
require:
- '@5.5.5'
- cxxstd=17 -davix +python +scitokens-cpp
...@@ -11,9 +11,11 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ ...@@ -11,9 +11,11 @@ read -r -d '' SPACK_CHERRYPICKS <<- \
9ee2d79de172de14477a78e5d407548a63eea33a 9ee2d79de172de14477a78e5d407548a63eea33a
776ab132760d63eab0703b7c0ebebc72a8443f5b 776ab132760d63eab0703b7c0ebebc72a8443f5b
188168c476eabe99764634db8d78eb3f9ea2a927 188168c476eabe99764634db8d78eb3f9ea2a927
b3268c2703b84f4e4961c1e2cdf43e8998f283e6
--- ---
## Ref: https://github.com/spack/spack/commit/[hash] ## Ref: https://github.com/spack/spack/commit/[hash]
## [hash]: [description] ## [hash]: [description]
## 9ee2d79de172de14477a78e5d407548a63eea33a: libxpm package: fix RHEL8 build with libintl ## 9ee2d79de172de14477a78e5d407548a63eea33a: libxpm package: fix RHEL8 build with libintl
## 776ab132760d63eab0703b7c0ebebc72a8443f5b: [xrootd] New variants, new version, improve build config ## 776ab132760d63eab0703b7c0ebebc72a8443f5b: [xrootd] New variants, new version, improve build config
## 188168c476eabe99764634db8d78eb3f9ea2a927: podio: Add 0.16.5 tag ## 188168c476eabe99764634db8d78eb3f9ea2a927: podio: Add 0.16.5 tag
## b3268c2703b84f4e4961c1e2cdf43e8998f283e6: freetype: add pic and shared variants
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