Skip to content

chore(ci): update GitHub Actions to latest majors - #11792

Merged
ovr merged 1 commit into
masterfrom
update-github-actions
Sep 7, 2026
Merged

ovr merged 1 commit into
masterfrom
update-github-actions

Conversation

@ovr

@ovr ovr commented Sep 7, 2026

Copy link
Copy Markdown
Member

Check List

  • Tests have been run in packages where changes have been made if available
  • Linter has been run for changed code
  • Tests for the changes have been added if not covered yet
  • Docs have been added / updated if required

Description of Changes Made

Brings 18 actions up to their latest majors — mostly the Node 20 → Node 24 runtime migration that landed across actions/* and docker/*: checkout→v7, setup-node/setup-python→v7, cache→v6, upload-artifact→v7, download-artifact→v8, github-script→v9, labeler→v7, all four docker/*→v4/v7, codecov→v7, nick-fields/retry→v4, dockerhub-description→v5, configure-aws-credentials→v6, upx-action→v3. Two of those majors renamed inputs, so docker/bake-action's workdir: becomes source: and upx-action's file: becomes files:. Also replaced two actions that have no newer release: allenevans/set-env (6 call sites) with plain >> "$GITHUB_ENV", and the node12 hramos/label-actions@v1 with its maintained upstream dessant/label-actions@v5. Added a grouped weekly github-actions entry to .github/dependabot.yml — its absence is why everything had drifted 1–4 majors behind. All runners are GitHub-hosted and every container: image in use is glibc ≥ 2.31, above Node 24's 2.28 floor, so the runtime bump is safe throughout.

Verification

actionlint 1.7.12 passes clean, and passes on an origin/master baseline too. Separately, all 215 remote uses: steps had their with: keys validated against each action's action.yml at the new ref — worth noting because actionlint alone does not catch renamed inputs: it passed on master with the stale workdir:/file: keys still in place. The bake-action rename is exercised by this PR (the diff touches cross-images.yml); master.yml, publish.yml, post-release.yml, rust-cubestore-master.yml and the upx steps only fire on master/tags/schedule, so they need a look at merge time.

Most of the drift is the Node 20 -> Node 24 runtime migration that landed
across actions/* and docker/* in late 2025 / 2026. Root cause of the rot:
.github/dependabot.yml had no github-actions ecosystem entry, so nothing was
proposing these bumps — added one, grouped weekly.

| Action | From | To |
| --- | --- | --- |
| actions/checkout | v4, v6 | v7 |
| actions/setup-node | v4 | v7 |
| actions/setup-python | v5 | v7 |
| actions/cache, actions/cache/restore | v4 | v6 |
| actions/upload-artifact | v4 | v7 |
| actions/download-artifact | v4 | v8 |
| actions/github-script | v7 | v9 |
| actions/labeler | v6 | v7 |
| docker/login-action | v3 | v4 |
| docker/setup-buildx-action | v3 | v4 |
| docker/setup-qemu-action | v3 | v4 |
| docker/build-push-action | v6 | v7 |
| docker/bake-action | v5 | v7 |
| codecov/codecov-action | v5 | v7 |
| nick-fields/retry | v3 | v4 |
| peter-evans/dockerhub-description | v2 | v5 |
| aws-actions/configure-aws-credentials | v4 | v6 |
| svenstaro/upx-action | v2 | v3 |

Renamed inputs the new majors require:

- docker/bake-action v7 merged `workdir` into `source`. v6 also flipped
  `source` to default to the git context, so passing the local path
  explicitly is what preserves the current path-context behavior.
- svenstaro/upx-action 3.0.0 dropped `file` for `files`.

Replaced two actions that have no newer release:

- allenevans/set-env (6 call sites) -> plain `>> "$GITHUB_ENV"`. The Windows
  OpenSSL blocks use `shell: bash` explicitly, since the default there is
  PowerShell, which writes UTF-16 and corrupts $GITHUB_ENV.
- hramos/label-actions@v1 -> dessant/label-actions@v5. Both v1 and v2 of the
  hramos fork declare `runs.using: node12`; dessant is the maintained upstream
  it was forked from. Renamed `repo-token` to `github-token`, added explicit
  permissions, and dropped the checkout step — v5 fetches
  .github/label-actions.yml over the API.

Verification: actionlint 1.7.12 is clean, and clean on an origin/master
baseline too. Separately, all 215 remote `uses:` steps had their `with:` keys
validated against each action's action.yml at the new ref — actionlint alone
does not catch renamed inputs, since it passed on master with the stale
`workdir`/`file` keys still in place.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 7, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.21%. Comparing base (98ac580) to head (7a7534a).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #11792      +/-   ##
==========================================
- Coverage   84.67%   80.21%   -4.47%     
==========================================
  Files         261      500     +239     
  Lines       86451   105649   +19198     
  Branches        0     3885    +3885     
==========================================
+ Hits        73204    84748   +11544     
- Misses      13247    20352    +7105     
- Partials        0      549     +549     
Flag Coverage Δ
cube-backend 60.15% <ø> (?)
cubesql 84.67% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ovr
ovr requested a review from a team as a code owner September 7, 2026 19:12
@github-actions github-actions Bot added cube store Issues relating to Cube Store rust Pull requests that update Rust code labels Sep 7, 2026
@ovr
ovr force-pushed the update-github-actions branch from 1589c61 to 7a7534a Compare September 7, 2026 19:21
@ovr
ovr merged commit 2c4fca5 into master Sep 7, 2026
178 of 189 checks passed
@ovr
ovr deleted the update-github-actions branch September 7, 2026 19:28
ovr added a commit that referenced this pull request Sep 9, 2026
…ode@v7 npmrc (#11816)

`setup-node` with `registry-url` writes an .npmrc containing
`//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}` and points
`NPM_CONFIG_USERCONFIG` at it. Up to v6 it also exported a placeholder value
for that variable; v7 only exports it when the user supplied one:

| setup-node | NODE_AUTH_TOKEN exported                                   |
| ---------- | ---------------------------------------------------------- |
| v4/v5/v6   | `process.env.NODE_AUTH_TOKEN \|\| 'XXXXX-XXXXX-XXXXX-XXXXX'` |
| v7         | only if present in `process.env`                           |

We publish via OIDC trusted publishing and set no token, so since #11792
bumped the action to v7 every yarn 1 command in the `npm` job dies with
`Failed to replace env in config: ${NODE_AUTH_TOKEN}` (npm tolerates the
unresolved value, yarn does not). That killed the v1.7.36 release at
`yarn policies set-version`, and silently emptied the yarn cache key before
that, since `yarn cache dir` failed inside a command substitution.

The auth line is unused with OIDC, so drop it and keep the `registry=` one.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ovr added a commit that referenced this pull request Sep 9, 2026
…ode@v7 npmrc (#11816)

`setup-node` with `registry-url` writes an .npmrc containing
`//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}` and points
`NPM_CONFIG_USERCONFIG` at it. Up to v6 it also exported a placeholder value
for that variable; v7 only exports it when the user supplied one:

| setup-node | NODE_AUTH_TOKEN exported                                   |
| ---------- | ---------------------------------------------------------- |
| v4/v5/v6   | `process.env.NODE_AUTH_TOKEN \|\| 'XXXXX-XXXXX-XXXXX-XXXXX'` |
| v7         | only if present in `process.env`                           |

We publish via OIDC trusted publishing and set no token, so since #11792
bumped the action to v7 every yarn 1 command in the `npm` job dies with
`Failed to replace env in config: ${NODE_AUTH_TOKEN}` (npm tolerates the
unresolved value, yarn does not). That killed the v1.7.36 release at
`yarn policies set-version`, and silently emptied the yarn cache key before
that, since `yarn cache dir` failed inside a command substitution.

The auth line is unused with OIDC, so drop it and keep the `registry=` one.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — 7a7534af Deployed Sep 7, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cube store Issues relating to Cube Store rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants