Conversation
Add four benchmark jobs to the build-push workflow that run inside the freshly-built eic_ci container to validate that container image changes do not silently alter physics output: - npsim-gun: particle gun simulation (pi, e × epic_craterlake) - npsim-dis: DIS simulation (5 beam/minQ2 combos × epic_craterlake) - eicrecon-gun: reconstruction of gun sim output - eicrecon-dis: reconstruction of DIS sim output All jobs run after eic-manifest using the pipeline-tagged eic_ci image, use a login shell (bash --login) to source profile.d detector setup, and upload artifacts for use in the follow-up capybara comparison PR. File matrix matches epic (not the larger EICrecon set). No caching. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds CI benchmark coverage for EPIC’s capybara-style workflows by running npsim simulations and EICrecon reconstruction inside the freshly built eic_ci container image produced in the same workflow run.
Changes:
- Add
npsim-gunandnpsim-dismatrix jobs to generate small simulation outputs. - Add
eicrecon-gunandeicrecon-dismatrix jobs to reconstruct the corresponding simulation artifacts. - Upload/download EDM4hep/EDM4eic ROOT artifacts between jobs.
The z21_epic_main.sh workaround uses eval to export only 4 env vars, missing LD_LIBRARY_PATH additions from thisepic.sh. This causes epic_FileLoader to not be found when npsim parses the compact XML. Explicitly source /opt/detector/epic-main/bin/thisepic.sh before running npsim and eicrecon in all four benchmark jobs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
wdconinc
commented
Apr 24, 2026
wdconinc
commented
Apr 24, 2026
wdconinc
commented
Apr 24, 2026
11 tasks
* ci: add capybara artifact comparisons to benchmark jobs For each of the four benchmark jobs (npsim-gun, npsim-dis, eicrecon-gun, eicrecon-dis), add after the artifact upload: 1. Download the previous artifact from the base branch using dawidd6/action-download-artifact@v20 2. Run 'capybara bara' to compare current output against the reference 3. Upload a .capy artifact containing the comparison reports Add a merge-capybara job that combines all *.capy artifacts into a single capybara-report artifact for easy consumption. This PR should be opened after the npsim/eicrecon benchmarks PR merges to master, so that the base-branch artifacts exist as reference. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * ci: trigger benchmarks on pull_request to any branch Remove the 'branches: [master]' filter from the pull_request trigger so that the benchmark jobs (including capybara comparisons) also fire on PRs targeting capybara or any other branch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
veprbl
approved these changes
Apr 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add four benchmark jobs to the CI workflow that run after the
eic-manifestjob inside the freshly-builteic_cicontainer:npsim-gunnpsim-diseicrecon-guneicrecon-disThe file matrix matches the epic repository capybara benchmarks (not the larger EICrecon set). No simulation caching — every run regenerates artifacts fresh.
Technical details
ghcr.io/eic/eic_ci:pipeline-${{ github.run_id }}(the image built in the same CI run)bash --login -eo pipefailto source/etc/profile.d/z21_epic_main.shand set$DETECTOR_PATH,$DETECTOR,$DETECTOR_CONFIGsim_*.edm4hep.root/rec_*.edm4eic.rootper job matrix entryFollow-up
A second PR (branch
capybara-compare) addscapybara baracomparison steps and amerge-capybarareport job on top of this branch, to be opened after this PR merges.