Skip to content

Conversation

@wdconinc
Copy link
Contributor

@wdconinc wdconinc commented Nov 6, 2024

Briefly, what does this PR introduce?

Upgrade {upload,download}-artifact@v3 to v4. https://github.com/actions/upload-artifact/blob/main/docs/MIGRATION.md

@wdconinc wdconinc requested a review from veprbl November 6, 2024 00:02
Copy link
Member

@veprbl veprbl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copilot AI review requested due to automatic review settings January 21, 2026 01:07
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades GitHub Actions artifact actions from v3 to v4 across the CI workflow. The v4 version introduces a breaking change where artifacts with the same name are merged rather than overwritten, which affects several jobs in this workflow.

Changes:

  • Updated all actions/upload-artifact@v3 references to @v4 (13 instances, including commented code)
  • Updated all actions/download-artifact@v3 references to @v4 (16 instances, including commented code)
Comments suppressed due to low confidence (6)

.github/workflows/ci.yml:391

  • The upgrade to upload-artifact@v4 introduces a critical breaking change: artifacts with the same name are now merged instead of overwritten. Both test_pixel_gaps and test_track_propagation jobs upload artifacts with the same name "tests". In v4, these will be merged together into a single artifact.

Since both jobs rename their output to "tests/" directory before uploading, there may be file path conflicts. You need to make the artifact name unique per job. Consider changing the names to "tests_pixel_gaps" and "tests_track_propagation" respectively.

      - uses: actions/upload-artifact@v4
        with:
          name: tests
          retention-days: 1
          path: tests*/

.github/workflows/ci.yml:48

  • The upgrade to upload-artifact@v4 introduces a critical breaking change: artifacts with the same name are now merged instead of overwritten. In the build_1 job, the matrix strategy creates multiple jobs (for EDM4eic, irt, and epic repos), and each uploads an artifact with the same name "build_1". In v4, these will be merged together, which will cause file conflicts since each matrix job creates "artifacts.${{matrix.repo}}.tar" with different values for ${{matrix.repo}}.

You need to make the artifact name unique per matrix job. Consider changing the name to include the matrix variable, for example: "build_1_${{matrix.repo}}".

      - uses: actions/upload-artifact@v4
        with:
          name: build_1
          retention-days: 1
          path: artifacts.${{matrix.repo}}.tar

.github/workflows/ci.yml:82

  • The upgrade to upload-artifact@v4 introduces a critical breaking change: artifacts with the same name are now merged instead of overwritten. In the build_2 job, the matrix strategy creates multiple jobs (for EICrecon and reconstruction_benchmarks repos), and each uploads an artifact with the same name "build_2". In v4, these will be merged together, which will cause file conflicts since each matrix job creates "artifacts.${{matrix.repo}}.tar" with different values for ${{matrix.repo}}.

You need to make the artifact name unique per matrix job. Consider changing the name to include the matrix variable, for example: "build_2_${{matrix.repo}}".

      - uses: actions/upload-artifact@v4
        with:
          name: build_2
          retention-days: 1
          path: artifacts.${{matrix.repo}}.tar

.github/workflows/ci.yml:201

  • The upgrade to upload-artifact@v4 introduces a critical breaking change: artifacts with the same name are now merged instead of overwritten. In the pipeline job, the matrix strategy creates multiple jobs (different combinations of id, radiator, and particle), and each uploads an artifact with the same name "pipeline". In v4, these will be merged together into a single artifact.

While the merging might work here since each matrix job creates a unique subdirectory path (pipeline/${{matrix.id}}/${{matrix.radiator}}/${{matrix.particle}}/), you should verify this is the intended behavior. If files with the same path exist across matrix jobs, they will conflict.

      - uses: actions/upload-artifact@v4
        with:
          name: pipeline
          retention-days: 1
          path: pipeline*/

.github/workflows/ci.yml:239

  • The upgrade to upload-artifact@v4 introduces a critical breaking change: artifacts with the same name are now merged instead of overwritten. In the geometry job, the matrix strategy creates 2 jobs (for DRICH and PFRICH detectors), and each uploads an artifact with the same name "geometry". In v4, these will be merged together into a single artifact.

While the merging might work here since each matrix job creates files with unique names (geo/${{matrix.detector}}_TGeo.root and geo/${{matrix.detector}}_constants.txt), you should verify this is the intended behavior. If files with the same path exist across matrix jobs, they will conflict.

      - uses: actions/upload-artifact@v4
        with:
          name: geometry
          retention-days: 1
          path: geo*/

.github/workflows/ci.yml:355

  • The upgrade to upload-artifact@v4 introduces a critical breaking change: artifacts with the same name are now merged instead of overwritten. Both test_pixel_gaps and test_track_propagation jobs upload artifacts with the same name "tests". In v4, these will be merged together into a single artifact.

Since both jobs rename their output to "tests/" directory before uploading, there may be file path conflicts. You need to make the artifact name unique per job. Consider changing the names to "tests_pixel_gaps" and "tests_track_propagation" respectively.

      - uses: actions/upload-artifact@v4
        with:
          name: tests
          retention-days: 1
          path: tests*/

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants