From a8b4e9827d8e6b897d48d64454a3492e417d8699 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Jul 2026 15:57:08 +0000 Subject: [PATCH 1/5] Initial plan From 6a587a9f48e529ec2c4d5de4918caddef94c29b9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Jul 2026 16:00:31 +0000 Subject: [PATCH 2/5] Refactor user_spack_environment script into base template --- .gitlab-ci.yml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 92a0ee8bd..7798ada12 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -523,7 +523,20 @@ eic: echo "No size limit configured for ${FULLNAME}, skipping check." ; fi +.user_spack_environment: + script: + - source /opt/spack/share/spack/setup-env.sh + - spack env activate --create edm4eic + - spack add edm4eic@git.main cxxstd=20 + - spack concretize + - spack install --only dependencies edm4eic + - spack install --verbose + - ls -al $HOME/spack/linux-*/compiler-wrapper-*/libexec/spack/gcc/g++ + - ls -al $HOME/spack/linux-*/edm4eic-*/include/edm4eic/EDM4eicVersion.h + - ls $HOME/spack/ + user_spack_environment: + extends: .user_spack_environment stage: benchmarks rules: # Skip for epic or EICrecon trigger @@ -543,16 +556,6 @@ user_spack_environment: PLATFORM: linux/amd64 image: name: ${CI_REGISTRY_IMAGE}/eic_ci:${INTERNAL_TAG}-default - script: - - source /opt/spack/share/spack/setup-env.sh - - spack env activate --create edm4eic - - spack add edm4eic@git.main cxxstd=20 - - spack concretize - - spack install --only dependencies edm4eic - - spack install --verbose - - ls -al $HOME/spack/linux-*/compiler-wrapper-*/libexec/spack/gcc/g++ - - ls -al $HOME/spack/linux-*/edm4eic-*/include/edm4eic/EDM4eicVersion.h - - ls $HOME/spack/ .cuda: stage: benchmarks From 8e434d01e0ea2cfe1a44b3fa8a710c8017662077 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Jul 2026 16:01:08 +0000 Subject: [PATCH 3/5] Broaden .singularity rules; tighten .sif artifact retention for disk space --- .gitlab-ci.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7798ada12..70bc882e2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -593,11 +593,24 @@ cuda:torch: stage: deploy interruptible: true rules: - - if: '$CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE != "trigger"' + # Skip for external repository triggers (e.g. EICrecon-triggered pipelines) + - if: '$CI_PIPELINE_SOURCE == "trigger" && $GITHUB_REPOSITORY != "eic/containers"' + when: never + - if: '$CI_COMMIT_BRANCH == "master"' + when: on_success + - if: '$CI_COMMIT_BRANCH =~ /^v[0-9]+\.[0-9]+-(alpha|beta|stable)/' + when: on_success + - if: '$CI_COMMIT_BRANCH =~ /^v[0-9]+\.[0-9]+-[a-z]+-(alpha|beta|stable)/' + when: on_success + - if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+/' + when: on_success + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' when: on_success - when: never artifacts: - expire_in: 1 days + # Short retention for disk space efficiency; .sif files are several GB each. + # MR and default runs only need the artifact for immediate verification. + expire_in: 2 hours paths: - build/${BUILD_IMAGE}.sif script: @@ -627,6 +640,11 @@ eic_xl:singularity:nightly: variables: BUILD_TYPE: nightly BUILD_IMAGE: eic_xl + artifacts: + # Override retention: eic-shell/install.py downloads this artifact after pipeline completion. + expire_in: 1 days + paths: + - build/${BUILD_IMAGE}.sif needs: - job: version - job: eic From c17e0bc81195f3a5965f757a9db10439cfdce81e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Jul 2026 16:24:26 +0000 Subject: [PATCH 4/5] Add singularity user_spack_environment CI job --- .gitlab-ci.yml | 51 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 70bc882e2..94f04a8b5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -523,17 +523,23 @@ eic: echo "No size limit configured for ${FULLNAME}, skipping check." ; fi +.user_spack_environment_commands: + variables: + USER_SPACK_ENVIRONMENT_COMMANDS: >- + source /opt/spack/share/spack/setup-env.sh && + spack env activate --create edm4eic && + spack add edm4eic@git.main cxxstd=20 && + spack concretize && + spack install --only dependencies edm4eic && + spack install --verbose && + ls -al $HOME/spack/linux-*/compiler-wrapper-*/libexec/spack/gcc/g++ && + ls -al $HOME/spack/linux-*/edm4eic-*/include/edm4eic/EDM4eicVersion.h && + ls $HOME/spack/ + .user_spack_environment: + extends: .user_spack_environment_commands script: - - source /opt/spack/share/spack/setup-env.sh - - spack env activate --create edm4eic - - spack add edm4eic@git.main cxxstd=20 - - spack concretize - - spack install --only dependencies edm4eic - - spack install --verbose - - ls -al $HOME/spack/linux-*/compiler-wrapper-*/libexec/spack/gcc/g++ - - ls -al $HOME/spack/linux-*/edm4eic-*/include/edm4eic/EDM4eicVersion.h - - ls $HOME/spack/ + - /bin/bash -lc "${USER_SPACK_ENVIRONMENT_COMMANDS}" user_spack_environment: extends: .user_spack_environment @@ -557,6 +563,33 @@ user_spack_environment: image: name: ${CI_REGISTRY_IMAGE}/eic_ci:${INTERNAL_TAG}-default +user_spack_environment:singularity: + extends: .user_spack_environment_commands + stage: benchmarks + rules: + # Skip for epic or EICrecon trigger + - if: '$CI_PIPELINE_SOURCE == "trigger" && $GITHUB_REPOSITORY != "eic/containers"' + when: never + - when: always + needs: + - job: version + - job: eic + parallel: + matrix: + - BUILD_IMAGE: eic_ + ENV: ci + BUILD_TYPE: default + BUILDER_IMAGE: debian_stable_base + RUNTIME_IMAGE: debian_stable_base + PLATFORM: linux/amd64 + image: + name: ${SINGULARITY_IMAGE} + entrypoint: [""] + script: + - mkdir build + - singularity pull build/eic_ci.sif docker://${CI_REGISTRY_IMAGE}/eic_ci:${INTERNAL_TAG}-default + - singularity exec build/eic_ci.sif /bin/bash -lc "${USER_SPACK_ENVIRONMENT_COMMANDS}" + .cuda: stage: benchmarks tags: From 4d5ef40c6057ed432e5989baa20d459f1eb200a2 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 19 Jul 2026 15:37:22 -0500 Subject: [PATCH 5/5] fix: escape $HOME in double eval command var --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94f04a8b5..43de01976 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -532,16 +532,16 @@ eic: spack concretize && spack install --only dependencies edm4eic && spack install --verbose && - ls -al $HOME/spack/linux-*/compiler-wrapper-*/libexec/spack/gcc/g++ && - ls -al $HOME/spack/linux-*/edm4eic-*/include/edm4eic/EDM4eicVersion.h && - ls $HOME/spack/ + ls -al \$HOME/spack/linux-*/compiler-wrapper-*/libexec/spack/gcc/g++ && + ls -al \$HOME/spack/linux-*/edm4eic-*/include/edm4eic/EDM4eicVersion.h && + ls \$HOME/spack/ .user_spack_environment: extends: .user_spack_environment_commands script: - /bin/bash -lc "${USER_SPACK_ENVIRONMENT_COMMANDS}" -user_spack_environment: +user_spack_environment:docker: extends: .user_spack_environment stage: benchmarks rules: