Skip to content

fix(branch-out-upload): add artifact-name input to prevent 409 collision in parallel matrix jobs#1512

Open
Fletch153 wants to merge 2 commits intomainfrom
fix/branch-out-upload-artifact-name-collision
Open

fix(branch-out-upload): add artifact-name input to prevent 409 collision in parallel matrix jobs#1512
Fletch153 wants to merge 2 commits intomainfrom
fix/branch-out-upload-artifact-name-collision

Conversation

@Fletch153
Copy link
Copy Markdown

@Fletch153 Fletch153 commented Apr 10, 2026

Summary

  • Adds an artifact-name input (default: individual_test_logs) to the branch-out-upload action
  • Replaces the hardcoded artifact name with ${{ inputs.artifact-name }} in the upload step

Problem

When multiple matrix jobs with trunk-auto-quarantine: true fail in the same workflow run, each calls branch-out-upload which unconditionally uploads an artifact named individual_test_logs. The second job gets a 409 conflict, meaning its diagnostic artifacts are lost.

Observed on smartcontractkit/chainlink where go_core_tests, go_core_tests_integration, and go_core_ccip_deployment_tests can collide on the same artifact name.

Note: the upload step only runs under the failure() condition, so this does not cause passing jobs to fail — but it does mean we lose test logs from all but the first failing matrix job, making debugging harder.

Fix

Callers can now pass a unique name per job:

artifact-name: ${{ matrix.type.cmd }}_test_logs

Backwards compatible — defaults to individual_test_logs if not set.

Related

  • Tracked in smartcontractkit/chainlink CORE-2418

@Fletch153 Fletch153 requested a review from a team as a code owner April 10, 2026 19:27
@github-actions
Copy link
Copy Markdown
Contributor

👋 Fletch153, thanks for creating this pull request!

To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team.

Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks!

Fletch153 added a commit to smartcontractkit/chainlink that referenced this pull request Apr 10, 2026
…ision

Multiple matrix jobs with trunk-auto-quarantine enabled (go_core_tests,
go_core_tests_integration, go_core_ccip_deployment_tests) all upload an
artifact named 'individual_test_logs' in the same workflow run, causing a
deterministic 409 conflict that fails CI even when tests pass.

Pass artifact-name: ${{ matrix.type.cmd }}_test_logs so each job gets a
unique artifact name. Depends on smartcontractkit/.github#1512.

Fixes: CORE-2418
Copy link
Copy Markdown
Contributor

@erikburt erikburt left a comment

Choose a reason for hiding this comment

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

Although this is worth fixing, it is not the cause of failures. The action only uploads when something has already failed.

You must add a changeset ‘pnpm changeset add’ or can try gocs (https://github.com/smartcontractkit/gocs).

github-merge-queue bot pushed a commit to smartcontractkit/chainlink that referenced this pull request Apr 13, 2026
…ision (#21977)

* fix(ci): pass unique artifact-name per matrix job to prevent 409 collision

Multiple matrix jobs with trunk-auto-quarantine enabled (go_core_tests,
go_core_tests_integration, go_core_ccip_deployment_tests) all upload an
artifact named 'individual_test_logs' in the same workflow run, causing a
deterministic 409 conflict that fails CI even when tests pass.

Pass artifact-name: ${{ matrix.type.cmd }}_test_logs so each job gets a
unique artifact name. Depends on smartcontractkit/.github#1512.

Fixes: CORE-2418

* fix(ci): pass unique artifact-name to branch-out-upload in CRE workflows

Prevents 409 conflict when multiple matrix jobs fail simultaneously and
attempt to upload artifacts with the same hardcoded name.

Fixes: smartcontractkit/.github/actions/branch-out-upload (artifact-name input)
jmank88
jmank88 previously approved these changes Apr 13, 2026
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