From 7fad41dc3dd4e5b6ba1d77eb1b21dd4f2f392b65 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 17 May 2026 14:42:21 +0000
Subject: [PATCH 1/8] Initial plan
From c26677d86a9d5e59e4e88394f9a8dce8f3fc28e6 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 17 May 2026 14:44:53 +0000
Subject: [PATCH 2/8] Add initial eic-shell CI workflow for npsim
Agent-Logs-Url: https://github.com/eic/npsim/sessions/cbe083a0-60ae-4514-970c-83cb02338b16
Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
---
.github/workflows/linux-eic-shell.yml | 237 ++++++++++++++++++++++++++
1 file changed, 237 insertions(+)
create mode 100644 .github/workflows/linux-eic-shell.yml
diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml
new file mode 100644
index 0000000..44a92b0
--- /dev/null
+++ b/.github/workflows/linux-eic-shell.yml
@@ -0,0 +1,237 @@
+name: Build against eic-shell
+
+on:
+ push:
+ branches:
+ - main
+ tags:
+ - '*'
+ pull_request:
+ merge_group:
+ workflow_dispatch:
+ inputs:
+ organization:
+ description: 'eic-shell organization'
+ default: 'eicweb'
+ required: false
+ type: string
+ platform:
+ description: 'eic-shell platform'
+ default: 'eic_xl'
+ required: false
+ type: string
+ release:
+ description: 'eic-shell release'
+ default: 'nightly'
+ required: false
+ type: string
+ detector-version:
+ description: 'epic geometry version'
+ default: 'main'
+ required: false
+ type: string
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+
+env:
+ organization: ${{ inputs.organization || vars.organization || 'eicweb' }}
+ platform: ${{ inputs.platform || 'eic_xl' }}
+ release: ${{ inputs.release || 'nightly' }}
+ detector-version: ${{ inputs.detector-version || 'main' }}
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ CXX: [g++, clang++]
+ CMAKE_BUILD_TYPE: [Release]
+ USE_ASAN: [OFF]
+ USE_TSAN: [OFF]
+ steps:
+ - uses: actions/checkout@v6
+ - uses: cvmfs-contrib/github-action-cvmfs@v5
+ - name: Build and install
+ uses: eic/run-cvmfs-osg-eic-shell@main
+ with:
+ organization: "${{ env.organization }}"
+ platform-release: "${{ env.platform }}:${{ env.release }}"
+ run: |
+ CXX="${{ matrix.CXX }}" cmake -B build -S . \
+ -DCMAKE_BUILD_TYPE=${{ matrix.CMAKE_BUILD_TYPE }} \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DUSE_ASAN=${{ matrix.USE_ASAN }} \
+ -DUSE_TSAN=${{ matrix.USE_TSAN }}
+ cmake --build build -j $(getconf _NPROCESSORS_ONLN) --target install
+ - name: Compress install directory
+ run: tar -caf install.tar.zst install/
+ - uses: actions/upload-artifact@v7
+ with:
+ name: install-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ env.release }}
+ path: install.tar.zst
+ if-no-files-found: error
+
+ npsim-gun:
+ runs-on: ubuntu-latest
+ needs: build
+ strategy:
+ fail-fast: false
+ matrix:
+ particle: [pi, e]
+ detector_config: [epic_craterlake]
+ steps:
+ - uses: actions/checkout@v6
+ - uses: actions/download-artifact@v8
+ with:
+ name: install-g++-eic-shell-Release-${{ env.platform }}-${{ env.release }}
+ path: .
+ - name: Uncompress install artifact
+ run: tar -xaf install.tar.zst
+ - uses: cvmfs-contrib/github-action-cvmfs@v5
+ - name: Produce simulation files
+ uses: eic/run-cvmfs-osg-eic-shell@main
+ with:
+ organization: "${{ env.organization }}"
+ platform-release: "${{ env.platform }}:${{ env.release }}"
+ setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
+ run: |
+ export DETECTOR_CACHE=/opt/detector/epic-${{ env.detector-version }}/share/epic
+ export PATH=$PWD/install/bin:$PATH
+ export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH
+ export DD4HEP_LIBRARY_PATH=$PWD/install/lib:$DD4HEP_LIBRARY_PATH
+ npsim --compactFile ${DETECTOR_PATH}/${{ matrix.detector_config }}.xml -G \
+ --random.seed 1 \
+ --gun.particle "${{ matrix.particle }}-" \
+ --gun.momentumMin "1*GeV" \
+ --gun.momentumMax "20*GeV" \
+ --gun.distribution "uniform" \
+ -N 100 \
+ --outputFile sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.edm4hep.root \
+ -v WARNING
+ - uses: actions/upload-artifact@v7
+ with:
+ name: sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.edm4hep.root
+ path: sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.edm4hep.root
+ if-no-files-found: error
+ - name: Download previous artifact
+ uses: dawidd6/action-download-artifact@v21
+ with:
+ branch: ${{ github.event.pull_request.base.ref || github.ref_name }}
+ path: ref/
+ name: sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.edm4hep.root
+ workflow: .github/workflows/linux-eic-shell.yml
+ workflow_conclusion: ""
+ if_no_artifact_found: warn
+ - name: Compare to previous artifacts
+ uses: eic/run-cvmfs-osg-eic-shell@main
+ with:
+ organization: "${{ env.organization }}"
+ platform-release: "${{ env.platform }}:${{ env.release }}"
+ setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
+ run: |
+ export PATH=$PWD/install/bin:$PATH
+ mkdir capybara-reports
+ shopt -s nullglob
+ capybara bara ref/sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.edm4hep.root* sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.edm4hep.root
+ mv capybara-reports sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}
+ touch .sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}
+ - uses: actions/upload-artifact@v7
+ with:
+ name: sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.capy
+ path: |
+ .sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}
+ sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}/
+ if-no-files-found: error
+
+ npsim-dis:
+ runs-on: ubuntu-latest
+ needs: build
+ strategy:
+ fail-fast: false
+ matrix:
+ beam: [5x41, 10x100, 18x275]
+ minq2: [1, 1000]
+ detector_config: [epic_craterlake]
+ exclude:
+ - beam: 5x41
+ minq2: 1000
+ steps:
+ - uses: actions/checkout@v6
+ - uses: actions/download-artifact@v8
+ with:
+ name: install-g++-eic-shell-Release-${{ env.platform }}-${{ env.release }}
+ path: .
+ - name: Uncompress install artifact
+ run: tar -xaf install.tar.zst
+ - uses: cvmfs-contrib/github-action-cvmfs@v5
+ - name: Produce simulation files
+ uses: eic/run-cvmfs-osg-eic-shell@main
+ with:
+ organization: "${{ env.organization }}"
+ platform-release: "${{ env.platform }}:${{ env.release }}"
+ setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
+ run: |
+ export DETECTOR_CACHE=/opt/detector/epic-${{ env.detector-version }}/share/epic
+ export PATH=$PWD/install/bin:$PATH
+ export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH
+ export DD4HEP_LIBRARY_PATH=$PWD/install/lib:$DD4HEP_LIBRARY_PATH
+ url=root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/DIS/NC/${{ matrix.beam }}/minQ2=${{ matrix.minq2 }}/pythia8NCDIS_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_beamEffects_xAngle=-0.025_hiDiv_1.hepmc3.tree.root
+ npsim --compactFile ${DETECTOR_PATH}/${{ matrix.detector_config }}.xml \
+ -N 100 \
+ --inputFiles ${url} \
+ --random.seed 1 \
+ --outputFile sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.edm4hep.root \
+ -v WARNING
+ - name: Upload ROOT output
+ uses: actions/upload-artifact@v7
+ with:
+ name: sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.edm4hep.root
+ path: sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.edm4hep.root
+ if-no-files-found: error
+ - name: Download previous artifact
+ uses: dawidd6/action-download-artifact@v21
+ with:
+ branch: ${{ github.event.pull_request.base.ref || github.ref_name }}
+ path: ref/
+ name: sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.edm4hep.root
+ workflow: .github/workflows/linux-eic-shell.yml
+ workflow_conclusion: ""
+ if_no_artifact_found: warn
+ - name: Compare to previous artifacts
+ uses: eic/run-cvmfs-osg-eic-shell@main
+ with:
+ organization: "${{ env.organization }}"
+ platform-release: "${{ env.platform }}:${{ env.release }}"
+ setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
+ run: |
+ export PATH=$PWD/install/bin:$PATH
+ mkdir capybara-reports
+ shopt -s nullglob
+ capybara bara ref/sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.edm4hep.root* sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.edm4hep.root
+ mv capybara-reports sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}
+ touch .sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}
+ - uses: actions/upload-artifact@v7
+ with:
+ name: sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.capy
+ path: |
+ .sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}
+ sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}/
+ if-no-files-found: error
+
+ merge-npsim-capybara:
+ runs-on: ubuntu-latest
+ needs:
+ - npsim-gun
+ - npsim-dis
+ steps:
+ - uses: actions/upload-artifact/merge@v7
+ with:
+ name: capybara-report
+ pattern: '*.capy'
+ delete-merged: true
From 9d1d35f68aa02131ae302ce746319616813c6488 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 17 May 2026 15:05:56 +0000
Subject: [PATCH 3/8] Address CI review feedback for sanitizer flags and pages
reporting
Agent-Logs-Url: https://github.com/eic/npsim/sessions/cf6dbb82-e53a-42c4-8eca-6e0e5d536cfe
Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
---
.github/workflows/linux-eic-shell.yml | 172 +++++++++++++++++++++++++-
1 file changed, 167 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml
index 44a92b0..457a2b6 100644
--- a/.github/workflows/linux-eic-shell.yml
+++ b/.github/workflows/linux-eic-shell.yml
@@ -52,8 +52,6 @@ jobs:
matrix:
CXX: [g++, clang++]
CMAKE_BUILD_TYPE: [Release]
- USE_ASAN: [OFF]
- USE_TSAN: [OFF]
steps:
- uses: actions/checkout@v6
- uses: cvmfs-contrib/github-action-cvmfs@v5
@@ -65,9 +63,7 @@ jobs:
run: |
CXX="${{ matrix.CXX }}" cmake -B build -S . \
-DCMAKE_BUILD_TYPE=${{ matrix.CMAKE_BUILD_TYPE }} \
- -DCMAKE_INSTALL_PREFIX=install \
- -DUSE_ASAN=${{ matrix.USE_ASAN }} \
- -DUSE_TSAN=${{ matrix.USE_TSAN }}
+ -DCMAKE_INSTALL_PREFIX=install
cmake --build build -j $(getconf _NPROCESSORS_ONLN) --target install
- name: Compress install directory
run: tar -caf install.tar.zst install/
@@ -235,3 +231,169 @@ jobs:
name: capybara-report
pattern: '*.capy'
delete-merged: true
+
+ list-open-prs:
+ uses: eic/actions/.github/workflows/list-open-prs.yml@main
+
+ get-docs-from-open-prs:
+ runs-on: ubuntu-latest
+ needs:
+ - list-open-prs
+ - merge-npsim-capybara
+ strategy:
+ matrix: ${{ fromJSON(needs.list-open-prs.outputs.json) }}
+ fail-fast: false
+ max-parallel: 4
+ steps:
+ - name: Download capybara artifact (other PRs)
+ id: download_capybara
+ uses: dawidd6/action-download-artifact@v21
+ if: github.event.pull_request.number != matrix.pr
+ with:
+ commit: ${{ matrix.head_sha }}
+ path: publishing_docs/pr/${{ matrix.pr }}/capybara/
+ name: capybara-report
+ workflow: ".github/workflows/linux-eic-shell.yml"
+ workflow_conclusion: "completed"
+ if_no_artifact_found: ignore
+ - name: Download capybara artifact (this PR)
+ uses: actions/download-artifact@v8
+ if: github.event.pull_request.number == matrix.pr
+ with:
+ name: capybara-report
+ path: publishing_docs/pr/${{ matrix.pr }}/capybara/
+ - uses: actions/upload-artifact@v7
+ with:
+ name: github-pages-staging-pr-${{ matrix.pr }}
+ path: publishing_docs/
+ if-no-files-found: ignore
+
+ get-docs-from-main:
+ runs-on: ubuntu-latest
+ needs:
+ - merge-npsim-capybara
+ steps:
+ - name: Download capybara artifact (in PR)
+ id: download_capybara
+ uses: dawidd6/action-download-artifact@v21
+ if: github.ref_name != 'main'
+ with:
+ branch: main
+ path: publishing_docs/capybara/
+ name: capybara-report
+ workflow: ".github/workflows/linux-eic-shell.yml"
+ workflow_conclusion: "completed"
+ if_no_artifact_found: ignore
+ - name: Download capybara artifact (on main)
+ uses: actions/download-artifact@v8
+ if: github.ref_name == 'main'
+ with:
+ name: capybara-report
+ path: publishing_docs/capybara/
+ - name: Populate capybara summary (on main)
+ if: github.ref_name == 'main' || steps.download_capybara.outputs.found_artifact == 'true'
+ run: |
+ echo "### Capybara summary for main" >> publishing_docs/capybara/index.md
+ find publishing_docs/capybara/ -mindepth 1 -maxdepth 1 -type d -printf \
+ "- [%f](https://eic.github.io/npsim/capybara/%f/index.html)\n" | sort >> publishing_docs/capybara/index.md
+ - name: Create capybara step summary (this PR)
+ if: github.ref_name == 'main'
+ run: |
+ cat publishing_docs/capybara/index.md >> $GITHUB_STEP_SUMMARY
+ - name: Ensure publishing_docs is non-empty
+ run: mkdir -p publishing_docs && touch publishing_docs/.keep
+ - uses: actions/upload-artifact@v7
+ with:
+ name: github-pages-staging-main
+ path: publishing_docs/
+ if-no-files-found: error
+ include-hidden-files: true
+
+ build-artifacts-page:
+ runs-on: ubuntu-latest
+ needs:
+ - get-docs-from-open-prs
+ - get-docs-from-main
+ if: |
+ always() &&
+ !cancelled() &&
+ !failure()
+ steps:
+ - name: Download artifacts for page
+ uses: actions/download-artifact@v8
+ with:
+ path: artifacts/
+ - name: Build static page content
+ run: |
+ mkdir -p _site
+ for dir in artifacts/github-pages-staging-*/; do
+ [ -d "$dir" ] && cp -r "$dir"/. _site/ || true
+ done
+ mkdir -p _site/pr
+ echo "### PRs" >> _site/pr/index.md
+ find _site/pr -mindepth 1 -maxdepth 1 -type d -printf "- [%f](%f/index.md)\n" | sort >> _site/pr/index.md
+ - name: Upload GitHub Pages artifact
+ uses: actions/upload-pages-artifact@v5
+ with:
+ path: _site/
+ retention-days: 7
+ - name: Populate capybara summary
+ if: ${{ github.event_name == 'pull_request' }}
+ run: |
+ echo "### Capybara summary for PR ${{ github.event.pull_request.number }}" >> capybara_${{ github.event.pull_request.number }}.md
+ [ -d _site/pr/${{ github.event.pull_request.number }}/capybara/ ] && \
+ find _site/pr/${{ github.event.pull_request.number }}/capybara/ -mindepth 1 -maxdepth 1 -type d -printf \
+ "- [%f](https://eic.github.io/npsim/pr/${{ github.event.pull_request.number }}/capybara/%f/index.html)\n" | sort >> capybara_${{ github.event.pull_request.number }}.md || true
+ echo "Last updated $(TZ=America/New_York date -Iminutes) ${{ github.event.pull_request.head.sha }}" >> capybara_${{ github.event.pull_request.number }}.md
+ - name: Create capybara step summary
+ if: ${{ github.event_name == 'pull_request' }}
+ run: |
+ cat capybara_${{ github.event.pull_request.number }}.md >> $GITHUB_STEP_SUMMARY
+ - name: Upload capybara summary
+ if: ${{ github.event_name == 'pull_request' }}
+ uses: actions/upload-artifact@v7
+ with:
+ name: capybara_${{ github.event.pull_request.number }}.md
+ path: capybara_${{ github.event.pull_request.number }}.md
+
+ deploy-artifacts-page:
+ needs:
+ - build-artifacts-page
+ if: |
+ always() &&
+ !cancelled() &&
+ !failure()
+ permissions:
+ pages: write
+ id-token: write
+ pull-requests: write
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ continue-on-error: true
+ uses: actions/deploy-pages@v5
+ - name: Find capybara comment
+ if: ${{ github.event_name == 'pull_request' }}
+ id: find_comment
+ uses: peter-evans/find-comment@v4
+ with:
+ issue-number: ${{ github.event.pull_request.number }}
+ comment-author: 'github-actions[bot]'
+ body-includes: Capybara summary
+ - name: Fetch capybara summary
+ if: ${{ github.event_name == 'pull_request' }}
+ uses: actions/download-artifact@v8
+ with:
+ name: capybara_${{ github.event.pull_request.number }}.md
+ - name: Create or update capybara comment
+ if: ${{ github.event_name == 'pull_request' }}
+ uses: peter-evans/create-or-update-comment@v5
+ with:
+ comment-id: ${{ steps.find_comment.outputs.comment-id }}
+ issue-number: ${{ github.event.pull_request.number }}
+ body-file: capybara_${{ github.event.pull_request.number }}.md
+ edit-mode: replace
From 8fc0cc813cf65254f4ececcd8a8f33c7f3eb25b5 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 17 May 2026 15:29:42 +0000
Subject: [PATCH 4/8] Handle empty env var prepends in linux workflow exports
Agent-Logs-Url: https://github.com/eic/npsim/sessions/968e998d-d157-4b26-bef3-b9c6c62b98c0
Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
---
.github/workflows/linux-eic-shell.yml | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml
index 457a2b6..0ce20f9 100644
--- a/.github/workflows/linux-eic-shell.yml
+++ b/.github/workflows/linux-eic-shell.yml
@@ -98,9 +98,8 @@ jobs:
setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
run: |
export DETECTOR_CACHE=/opt/detector/epic-${{ env.detector-version }}/share/epic
- export PATH=$PWD/install/bin:$PATH
- export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH
- export DD4HEP_LIBRARY_PATH=$PWD/install/lib:$DD4HEP_LIBRARY_PATH
+ export PATH=$PWD/install/bin${PATH:+:$PATH}
+ export LD_LIBRARY_PATH=$PWD/install/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
npsim --compactFile ${DETECTOR_PATH}/${{ matrix.detector_config }}.xml -G \
--random.seed 1 \
--gun.particle "${{ matrix.particle }}-" \
@@ -131,7 +130,7 @@ jobs:
platform-release: "${{ env.platform }}:${{ env.release }}"
setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
run: |
- export PATH=$PWD/install/bin:$PATH
+ export PATH=$PWD/install/bin${PATH:+:$PATH}
mkdir capybara-reports
shopt -s nullglob
capybara bara ref/sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.edm4hep.root* sim_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.edm4hep.root
@@ -174,9 +173,8 @@ jobs:
setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
run: |
export DETECTOR_CACHE=/opt/detector/epic-${{ env.detector-version }}/share/epic
- export PATH=$PWD/install/bin:$PATH
- export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH
- export DD4HEP_LIBRARY_PATH=$PWD/install/lib:$DD4HEP_LIBRARY_PATH
+ export PATH=$PWD/install/bin${PATH:+:$PATH}
+ export LD_LIBRARY_PATH=$PWD/install/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
url=root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/DIS/NC/${{ matrix.beam }}/minQ2=${{ matrix.minq2 }}/pythia8NCDIS_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_beamEffects_xAngle=-0.025_hiDiv_1.hepmc3.tree.root
npsim --compactFile ${DETECTOR_PATH}/${{ matrix.detector_config }}.xml \
-N 100 \
@@ -206,7 +204,7 @@ jobs:
platform-release: "${{ env.platform }}:${{ env.release }}"
setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
run: |
- export PATH=$PWD/install/bin:$PATH
+ export PATH=$PWD/install/bin${PATH:+:$PATH}
mkdir capybara-reports
shopt -s nullglob
capybara bara ref/sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.edm4hep.root* sim_dis_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_${{ matrix.detector_config }}.edm4hep.root
From c1362a8d592e1f55438dd1f1b46174033abc8549 Mon Sep 17 00:00:00 2001
From: Wouter Deconinck
Date: Sun, 17 May 2026 11:04:19 -0500
Subject: [PATCH 5/8] fix: detector{- => _}version
Co-authored-by: Wouter Deconinck
---
.github/workflows/linux-eic-shell.yml | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml
index 0ce20f9..d2628b6 100644
--- a/.github/workflows/linux-eic-shell.yml
+++ b/.github/workflows/linux-eic-shell.yml
@@ -25,7 +25,7 @@ on:
default: 'nightly'
required: false
type: string
- detector-version:
+ detector_version:
description: 'epic geometry version'
default: 'main'
required: false
@@ -42,7 +42,7 @@ env:
organization: ${{ inputs.organization || vars.organization || 'eicweb' }}
platform: ${{ inputs.platform || 'eic_xl' }}
release: ${{ inputs.release || 'nightly' }}
- detector-version: ${{ inputs.detector-version || 'main' }}
+ detector_version: ${{ inputs.detector_version || 'main' }}
jobs:
build:
@@ -95,9 +95,9 @@ jobs:
with:
organization: "${{ env.organization }}"
platform-release: "${{ env.platform }}:${{ env.release }}"
- setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
+ setup: /opt/detector/epic-${{ env.detector_version }}/bin/thisepic.sh
run: |
- export DETECTOR_CACHE=/opt/detector/epic-${{ env.detector-version }}/share/epic
+ export DETECTOR_CACHE=/opt/detector/epic-${{ env.detector_version }}/share/epic
export PATH=$PWD/install/bin${PATH:+:$PATH}
export LD_LIBRARY_PATH=$PWD/install/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
npsim --compactFile ${DETECTOR_PATH}/${{ matrix.detector_config }}.xml -G \
@@ -128,7 +128,7 @@ jobs:
with:
organization: "${{ env.organization }}"
platform-release: "${{ env.platform }}:${{ env.release }}"
- setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
+ setup: /opt/detector/epic-${{ env.detector_version }}/bin/thisepic.sh
run: |
export PATH=$PWD/install/bin${PATH:+:$PATH}
mkdir capybara-reports
@@ -170,9 +170,9 @@ jobs:
with:
organization: "${{ env.organization }}"
platform-release: "${{ env.platform }}:${{ env.release }}"
- setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
+ setup: /opt/detector/epic-${{ env.detector_version }}/bin/thisepic.sh
run: |
- export DETECTOR_CACHE=/opt/detector/epic-${{ env.detector-version }}/share/epic
+ export DETECTOR_CACHE=/opt/detector/epic-${{ env.detector_version }}/share/epic
export PATH=$PWD/install/bin${PATH:+:$PATH}
export LD_LIBRARY_PATH=$PWD/install/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
url=root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/DIS/NC/${{ matrix.beam }}/minQ2=${{ matrix.minq2 }}/pythia8NCDIS_${{ matrix.beam }}_minQ2=${{ matrix.minq2 }}_beamEffects_xAngle=-0.025_hiDiv_1.hepmc3.tree.root
@@ -202,7 +202,7 @@ jobs:
with:
organization: "${{ env.organization }}"
platform-release: "${{ env.platform }}:${{ env.release }}"
- setup: /opt/detector/epic-${{ env.detector-version }}/bin/thisepic.sh
+ setup: /opt/detector/epic-${{ env.detector_version }}/bin/thisepic.sh
run: |
export PATH=$PWD/install/bin${PATH:+:$PATH}
mkdir capybara-reports
From f7e54ca1772314ef229cbabdaef866071e630e2a Mon Sep 17 00:00:00 2001
From: Wouter Deconinck
Date: Sun, 17 May 2026 11:04:47 -0500
Subject: [PATCH 6/8] fix: limit workflow permissions
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---
.github/workflows/linux-eic-shell.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml
index d2628b6..7f97103 100644
--- a/.github/workflows/linux-eic-shell.yml
+++ b/.github/workflows/linux-eic-shell.yml
@@ -37,6 +37,8 @@ concurrency:
permissions:
contents: read
+ actions: read
+ pull-requests: read
env:
organization: ${{ inputs.organization || vars.organization || 'eicweb' }}
From d499b059ea7f4ee2836671c39bd7cb345171d29e Mon Sep 17 00:00:00 2001
From: Wouter Deconinck
Date: Sun, 17 May 2026 11:05:20 -0500
Subject: [PATCH 7/8] fix: limit download artifacts with pattern
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---
.github/workflows/linux-eic-shell.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml
index 7f97103..f1ebcaf 100644
--- a/.github/workflows/linux-eic-shell.yml
+++ b/.github/workflows/linux-eic-shell.yml
@@ -322,6 +322,7 @@ jobs:
- name: Download artifacts for page
uses: actions/download-artifact@v8
with:
+ pattern: github-pages-staging-*
path: artifacts/
- name: Build static page content
run: |
From db0fe5e02c5c341474776d490ac355c0802d4c02 Mon Sep 17 00:00:00 2001
From: Wouter Deconinck
Date: Sun, 17 May 2026 11:06:09 -0500
Subject: [PATCH 8/8] fix: fail on deploy error
---
.github/workflows/linux-eic-shell.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml
index f1ebcaf..c43b0d1 100644
--- a/.github/workflows/linux-eic-shell.yml
+++ b/.github/workflows/linux-eic-shell.yml
@@ -375,7 +375,7 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
- continue-on-error: true
+ continue-on-error: false
uses: actions/deploy-pages@v5
- name: Find capybara comment
if: ${{ github.event_name == 'pull_request' }}