ci: move the remaining workflows off the retired node20 action runtime (DEV-3113) - #373
Merged
Merged
Conversation
…flows Same first-node24 majors PR #371 chose for ci.yml/master.yml: checkout@v5, setup-node@v5, upload-artifact@v6, download-artifact@v7, pnpm/action-setup@v5. download-artifact v5's breaking change only affects artifact-ids downloads; these workflows download by name or pattern. Refs DEV-3113 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…elong import-starters runs setup-node before pnpm exists (corepack comes after), so the auto-cache fails with "Unable to locate executable file: pnpm". examples-build deliberately runs uncached (installs under RUNNER_TEMP miss a workspace-resolved store silently); v5 would have turned the cache on without a word. Refs DEV-3113 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v7.0.11 is runs.using node20. actionlint cannot resolve SHA pins so it never flagged this; the pin stays a SHA because the job holds contents+PR write. Refs DEV-3113 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs DEV-3113 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
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.
Context
GitHub retired the node20 action runtime (removal date 2026-09-23). PR #371 moves
ci.yml,master.ymlande2e-o11y-local.ymlto node24 actions. This PR does the same for the six remaining workflows:e2e-live,e2e-starter-matrix,examples-build,import-docs,import-startersandserver-examples-build. The two PRs touch different files, so they don't conflict whichever merges first.actions/checkout@v5,actions/setup-node@v5,actions/upload-artifact@v6,actions/download-artifact@v7,pnpm/action-setup@v5. download-artifact v5's breaking change only affectsartifact-ids:downloads. These workflows download byname:orpattern:.package-manager-cache: falseon four setup-node steps. setup-node v5 turns on package-manager caching by itself when the rootpackage.jsondeclarespackageManager.import-starters(both jobs) pnpm only exists aftercorepack enable, so the step would fail with "Unable to locate executable file: pnpm".examples-build(buildand the canary lane) nothing would fail. v5 would silently turn on the cache that the existing comment deliberately rules out: installs run under RUNNER_TEMP and would miss a workspace-resolved store without any signal.cache:explicitly and are unaffected.peter-evans/create-pull-requestv7.0.11 → v8.1.1 (not in the ticket's list). v7.0.11 isruns.using: node20, but actionlint can't resolve SHA pins, so it never flagged it. The pin stays a SHA because the job holds contents + PR write permissions. v8.x changes only the runtime, adds retries and bumps deps. All seven inputs used here (base,body,branch,commit-message,labels,reviewers,title) exist in v8.1.1'saction.yml.# shellcheck disable=SC2086directives. These fix the existing shellcheck notes onpnpm update $pkgsandnpm install handsontable@latest $wrapper. Both rely on word splitting (a space-separated package list; a wrapper that is empty for vanilla), so quoting them would break the commands.Types of changes
runner/) changeHow was this verified?
uses:in the six files,runs.usingwas read from that action's ownaction.ymlat the pinned ref throughgh api. Before:checkout@v4,setup-node@v4,upload-artifact@v4,download-artifact@v4,pnpm/action-setup@v4andcreate-pull-request@22a9089…were allnode20. After: all six refs arenode24.reviewdog/action-actionlintbundles. The ticket's "actionlint v1.7.10 or newer" is misleading: upstream rhysd actionlint 1.7.12 reports nothing about node20 on these files. kjanat 1.17.0 reported 29runtime "node20" is deprecatederrors plus the two SC2086 notes before this change, and exits 0 after it. rhysd 1.7.12 also exits 0.cache:norpackage-manager-cache:found the four sites above before this change. After it, the scan finds onlyci.yml:52, thepresencejob that feat(runner): self-hosted observability on Cloudflare (ADR-0041, ADR-0042) #371 already fixes.examples-buildandserver-examples-buildrun here because their own workflow files are in theirpull_request.paths.e2e-starter-matrix,e2e-live,import-docsandimport-startersaren't triggered by a PR. They either run against production or open generated-content PRs, so they get oneworkflow_dispatchrun each (or their next scheduled run) and are ticked off on DEV-3113.Checklist
runner/config/frameworks.json(see CONTRIBUTING.md); otherwise it won't appear on demos.handsontable.compnpm build(andpnpm dev) in the affected example/server-example locallyNo example code changed, so none of the checklist items apply.
Related issue(s):
ci.yml,master.yml,e2e-o11y-local.yml)Note
Low Risk
CI-only workflow and action version updates; behavioral changes are limited to explicit cache opt-outs and SHA-pinned PR automation still using the same inputs.
Overview
Moves six remaining GitHub workflows off the retired node20 action runtime (DEV-3113), complementing #371’s updates to
ci.yml,master.yml, ande2e-o11y-local.yml.Action bumps (aligned with #371):
checkout@v5,pnpm/action-setup@v5,setup-node@v5,upload-artifact@v6,download-artifact@v7acrosse2e-live,e2e-starter-matrix,examples-build,import-docs,import-starters, andserver-examples-build.peter-evans/create-pull-requestis pinned to v8.1.1 (node24) in the import publish jobs.setup-node@v5behavior:package-manager-cache: falseis set where v5 would auto-enable pnpm caching from the rootpackageManagerfield—either because pnpm isn’t available yet (import-starters, beforecorepack enable) or because installs run underRUNNER_TEMPand a silent cache miss would defeatexamples-build’s intentional no-cache design.Minor shell fixes:
# shellcheck disable=SC2086onpnpm update $pkgsandnpm install handsontable@latest $wrapperwhere word splitting is required.Reviewed by Cursor Bugbot for commit 1ad8a8a. Bugbot is set up for automated code reviews on this repo. Configure here.