Skip to content

ci: sanitize hive workspace-log artifact names#21598

Merged
taratorio merged 1 commit into
mainfrom
yperbasis/hive-artifact-name
Jun 3, 2026
Merged

ci: sanitize hive workspace-log artifact names#21598
taratorio merged 1 commit into
mainfrom
yperbasis/hive-artifact-name

Conversation

@yperbasis
Copy link
Copy Markdown
Member

Summary

Hive workspace logs (simulator output + erigon client logs) are uploaded with the matrix values interpolated into the artifact name:

name: hive-workspace-log-${{ matrix.sim }}-${{ matrix.sim-limit }}-${{ matrix.exec_mode }}

actions/upload-artifact forbids /, | and * in artifact names, so the upload fails for every leg whose name contains them — i.e. all ethereum/engine, ethereum/rpc-compat (.* limit) and devp2p-eth|discv5 legs. The failure is masked by the step's continue-on-error: true, so the logs just silently vanish:

##[error]The artifact name is not valid: hive-workspace-log-devp2p-eth|discv5-parallel. Contains the following character:  Vertical bar |

Only hive-workspace-log-devp2p-eth-serial ever uploaded. This bit during the investigation of the BlobViolations flake behind #21597: the failing parallel-leg run (https://github.com/erigontech/erigon/actions/runs/26867180780) had no workspace-log artifact, and the root-cause analysis had to be reconstructed from the job stdout.

Fix

Compute the artifact name in a small step that replaces any character outside [A-Za-z0-9._-] with _. Resulting names per leg:

before (invalid ones rejected) after
hive-workspace-log-ethereum/engine-exchange-capabilities|auth-serial hive-workspace-log-ethereum_engine-exchange-capabilities_auth-serial
hive-workspace-log-ethereum/engine-cancun-parallel hive-workspace-log-ethereum_engine-cancun-parallel
hive-workspace-log-ethereum/rpc-compat-.*-serial hive-workspace-log-ethereum_rpc-compat-._-serial
hive-workspace-log-devp2p-eth|discv5-parallel hive-workspace-log-devp2p-eth_discv5-parallel
hive-workspace-log-devp2p-eth-serial (worked) unchanged

test-hive-eest.yml (matrix.shard values like paris+shanghai; + is allowed) and release.yml artifact names contain no forbidden characters, so they are left alone.

Validated with actionlint and by evaluating the substitution against every matrix combination.

matrix.sim and matrix.sim-limit are interpolated into the artifact name,
but "/" (ethereum/engine, ethereum/rpc-compat), "|" (eth|discv5,
exchange-capabilities|auth) and "*" (.*) are invalid in artifact names,
so upload-artifact rejected the upload (masked by continue-on-error) and
the hive workspace logs silently vanished for every leg except
devp2p-eth-serial. Replace disallowed characters with "_" before upload.
Copy link
Copy Markdown
Contributor

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 fixes missing Hive workspace log artifacts in CI by sanitizing the artifact name so it always conforms to actions/upload-artifact naming constraints. This ensures simulator/client logs are consistently uploaded for all matrix legs (including those with /, |, * in interpolated values), instead of silently failing.

Changes:

  • Add a step to compute a sanitized artifact name by replacing characters outside [A-Za-z0-9._-] with _.
  • Use the computed sanitized name for the actions/upload-artifact workspace log upload.

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

Copy link
Copy Markdown
Contributor

@Giulio2002 Giulio2002 left a comment

Choose a reason for hiding this comment

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

LGTM — sanitizes artifact names for GitHub Actions so hive workspace logs upload reliably despite matrix values containing invalid characters.

@taratorio taratorio enabled auto-merge June 3, 2026 10:08
@taratorio taratorio added this pull request to the merge queue Jun 3, 2026
Merged via the queue into main with commit ea6e9f1 Jun 3, 2026
91 checks passed
@taratorio taratorio deleted the yperbasis/hive-artifact-name branch June 3, 2026 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants