Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
eic_container
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
containers
eic_container
Commits
97b43ffb
Commit
97b43ffb
authored
3 years ago
by
Wouter Deconinck
Committed by
Sylvester Joosten
3 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Spack: geant4 -threads for ACTS
parent
ebc3fe49
No related branches found
No related tags found
1 merge request
!154
Spack: geant4 -threads for ACTS
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
.gitlab-ci.yml
+6
-177
6 additions, 177 deletions
.gitlab-ci.yml
spack.yaml
+1
-1
1 addition, 1 deletion
spack.yaml
with
7 additions
and
178 deletions
.gitlab-ci.yml
+
6
−
177
View file @
97b43ffb
...
...
@@ -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}
This diff is collapsed.
Click to expand it.
spack.yaml
+
1
−
1
View file @
97b43ffb
...
...
@@ -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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment