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' }}