Skip to content
Snippets Groups Projects
Commit 97b43ffb authored by Wouter Deconinck's avatar Wouter Deconinck Committed by Sylvester Joosten
Browse files

Spack: geant4 -threads for ACTS

parent ebc3fe49
No related branches found
No related tags found
1 merge request!154Spack: geant4 -threads for ACTS
......@@ -39,7 +39,6 @@ stages:
- config
- build:base ## base OS image
- build:dev ## naked dev container image
- build:release ## dressed release container image
- deploy ## build/deploy singularity images
- test
- finalize
......@@ -55,39 +54,10 @@ default:
- docker logout
- docker logout ${CI_REGISTRY}
## only run CI for in the following cases:
## master, stable branch, release tag, MR event and nightly builds
## nightly builds are now part of the regular master build in order to keep
## all artifacts available at all times.
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH == "master"'
- if: '$CI_COMMIT_BRANCH =~ /^v[0-9]+\.[0-9]+-stable/' ## main stable branch: vX.Y-stable
- if: '$CI_COMMIT_BRANCH =~ /^v[0-9]+\.[0-9]+-[a-z]+-stable/' ## special stable branch: vX.Y-acadia-stable (etc)
- if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+/' ## commit tags start with vX.Y.Z with optional suffix
## plan:
## Workflows:
## - master --> config + all build stages + singularity
# + nightly build:release + nightly singularity
## - v3.0-stable --> config + all build stages + singularity
## - v3.0.0 --> config + all build stages + singularity
## - MR --> config + all build stages
##
## Container images tags
## - master --> testing
## - <nightly> --> nightly (run as part of master)
## - v3.0-stable --> 3.0-stable
## - v3.0.0 --> 3.0-stable, 3.0.0
## - acadia
## - MR --> 3.0-unstable (on all registries)
## --> unstable-mr-XXX (on eicweb only, untag at end of pipeline)
## - all other --> do nothing
##
## caching strategy for dispatch to multiple nodes and to avoid
## --> try this strategy: https://medium.com/titansoft-engineering/docker-build-cache-sharing-on-multi-hosts-with-buildkit-and-buildx-eb8f7005918e
## (first try with buildx didn't pan out, let's try again later)
- if: '$CI_COMMIT_BRANCH == "acts-material-scan"'
version:
stage: config
......@@ -97,42 +67,26 @@ version:
VERSION_FULL=${VERSION}
VERSION_SHORT=${VERSION%.*}
TESTING="testing"
NIGHTLY="nightly"
## determine appropriate major docker tag for this scenario
- |
## internal tag used for the CI. Also temporarily tagged
## on eicweb to communicate between jobs (removed in cleanup job)
INTERNAL_TAG="testing-$VERSION"
INTERNAL_TAG="${TESTING}-$VERSION"
## main export tag, optional secondary export tag,
EXPORT_TAG=${TESTING}
EXPORT_TAG2=
## nightly tag, only used in master
NIGHTLY_TAG=${NIGHTLY}
if [ "x${CI_PIPELINE_SOURCE}" = "xmerge_request_event" ]; then
INTERNAL_TAG="unstable-mr-${CI_MERGE_REQUEST_ID}"
NIGHTLY_TAG="${INTERNAL_TAG}-nightly"
EXPORT_TAG=${VERSION_SHORT}-unstable
EXPORT_TAG2=
elif [[ "$CI_COMMIT_TAG" =~ ^v${VERSION} ]]; then
VERSION_FULL="${CI_COMMIT_TAG:1}"
INTERNAL_TAG="stable-tag-${VERSION_FULL}"
NIGHTLY_TAG=
EXPORT_TAG=${VERSION_FULL}
EXPORT_TAG2=
elif [ "$CI_COMMIT_BRANCH" = "v${VERSION_SHORT}-stable" ]; then
INTERNAL_TAG="stable-br-${VERSION}"
NIGHTLY_TAG=
EXPORT_TAG=${VERSION_SHORT}-stable
EXPORT_TAG2=
elif [[ "$CI_COMMIT_BRANCH" =~ ^v${VERSION_SHORT}-[a-z]+-stable ]]; then
VERSION_FULL="${CI_COMMIT_BRANCH:1}"
INTERNAL_TAG="stable-br-${VERSION_FULL}"
NIGHTLY_TAG=
EXPORT_TAG=${VERSION_FULL}
EXPORT_TAG2=
fi
echo "INTERNAL_TAG=$INTERNAL_TAG" >> build.env
echo "NIGHTLY_TAG=$NIGHTLY_TAG" >> build.env
echo "EXPORT_TAG=$EXPORT_TAG" >> build.env
echo "EXPORT_TAG2=$EXPORT_TAG2" >> build.env
cat build.env
......@@ -186,7 +140,7 @@ jug_dev:default:
- version
- debian_base:default
variables:
BUILD_IMAGE: "jug_dev"
BUILD_IMAGE: "acts_material_scan"
script:
## calculate a hash based on the spack.yaml file and the spack directory
## and use this spack as a docker variable to force a rebuild when there
......@@ -227,60 +181,6 @@ jug_dev:default:
## standard exports
- !reference [.build, script]
jug_xl:default:
extends: .build
stage: build:release
interruptible: true
needs:
- version
- jug_dev:default
variables:
BUILD_IMAGE: "jug_xl"
script:
- docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG}
-f containers/jug/xl.Dockerfile
--build-arg INTERNAL_TAG=${INTERNAL_TAG}
--build-arg JUGGLER_VERSION=${JUGGLER_VERSION}
--build-arg NPDET_VERSION=${NPDET_VERSION}
--build-arg EICD_VERSION=${EICD_VERSION}
--build-arg AFTERBURNER_VERSION=${AFTERBURNER_VERSION}
--build-arg DETECTOR_VERSION=${DETECTOR_VERSION}
--build-arg IP6_VERSION=${IP6_VERSION}
--build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD)
containers/jug
- !reference [.build, script]
jug_xl:nightly:
extends: .build
stage: build:release
interruptible: true
resource_group: build
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
when: on_success
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: on_success
- when: never
needs:
- version
- jug_dev:default
variables:
BUILD_IMAGE: "jug_xl"
script:
- docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${NIGHTLY_TAG}
-f containers/jug/xl.Dockerfile
--build-arg INTERNAL_TAG=${INTERNAL_TAG}
--build-arg JUG_VERSION=nightly-$(date +%Y-%m-%d_%H-%M-%S)-$(git rev-parse HEAD)
containers/jug
- |
PUSH_FLAG=""
if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then
PUSH_FLAG="--eicweb"
fi
- ./gitlab-ci/docker_push.sh -i ${BUILD_IMAGE} -l ${NIGHTLY_TAG}
-n $DOCKER_NTRIES -t $DOCKER_WAIT_TIME
${NIGHTLY_TAG} ${PUSH_FLAG}
.singularity:
stage: deploy
interruptible: true
......@@ -296,79 +196,13 @@ jug_xl:nightly:
- mkdir build
- singularity pull build/${BUILD_IMAGE}.sif docker://${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG}
jug_dev:singularity:default:
acts_material_scan:singularity:default:
extends: .singularity
needs:
- version
- jug_dev:default
variables:
BUILD_IMAGE: "jug_dev"
jug_xl:singularity:default:
extends: .singularity
needs:
- version
- jug_xl:default
variables:
BUILD_IMAGE: "jug_xl"
jug_xl:singularity:nightly:
stage: deploy
interruptible: true
needs:
- version
- jug_xl:nightly
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
when: on_success
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: on_success
- when: never
artifacts:
expire_in: 1 days
paths:
- build/${BUILD_IMAGE}.sif
variables:
BUILD_IMAGE: "jug_xl"
script:
- mkdir build
- singularity pull build/${BUILD_IMAGE}.sif docker://${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${NIGHTLY_TAG}
## trigger juggler rebuild on nightly schedule to ensure both images remain in sync
juggler:master:
stage: deploy
rules:
- if: '$NIGHTLY != "0" && $CI_COMMIT_BRANCH == "master"'
when: on_success
- when: never
needs:
- version
- jug_xl:nightly
variables:
TRIGGERED_BY_NIGHTLY: 1
JUGGLER_VERSION: master
EICD_VERSION: master
NPDET_VERSION: master
DETECTOR_VERSION: master
IP6_VERSION: master
trigger:
project: EIC/juggler
allow_failure: true
.test:
stage: test
needs:
- version
- jug_xl:singularity:nightly
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
when: on_success
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: on_success
- when: never
include:
- local: 'tests/tutorial/config.yml'
BUILD_IMAGE: "acts_material_scan"
cleanup:
stage: finalize
......@@ -378,9 +212,4 @@ cleanup:
## remove the pipeline specific export from eicweb if needed
- echo "Cleaning up pipeline specific docker tags if needed"
- ./gitlab-ci/cleanup_registry.sh -i debian_base -r 66 ${INTERNAL_TAG}
- ./gitlab-ci/cleanup_registry.sh -i jug_dev -r 68 ${INTERNAL_TAG}
- ./gitlab-ci/cleanup_registry.sh -i jug_xl -r 69 ${INTERNAL_TAG}
- |
if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then
./gitlab-ci/cleanup_registry.sh -i jug_xl -r 69 ${NIGHTLY_TAG}
fi
- ./gitlab-ci/cleanup_registry.sh -i acts_material_scan -r 70 ${INTERNAL_TAG}
......@@ -23,7 +23,7 @@ spack:
- stow@2.3.1
- cairo@1.16.0 +fc+ft+X+pdf+gobject
- podio@0.13.1
- geant4@10.7.1 cxxstd=17 +opengl +vecgeom +x11 +qt +threads ^qt +opengl
- geant4@10.7.1 cxxstd=17 +opengl +vecgeom +x11 +qt -threads ^qt +opengl
- dd4hep@1.17p1 +geant4 +assimp +hepmc3 +ipo +lcio
- acts@8.03.0p1 +dd4hep +digitization +identification +json +tgeo +ipo +examples +fatras +geant4
- genfit@2.00.00
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment