Skip to content

Migrate third-party GHA actions off deprecated node20/node16 runtimes#92136

Draft
mountiny wants to merge 3 commits into
mainfrom
fix/node20-eol-action-runtime-deprecations
Draft

Migrate third-party GHA actions off deprecated node20/node16 runtimes#92136
mountiny wants to merge 3 commits into
mainfrom
fix/node20-eol-action-runtime-deprecations

Conversation

@mountiny
Copy link
Copy Markdown
Contributor

Why

Node 20 reached end-of-life on April 30, 2026 and GitHub is switching its Actions runner default from Node 20 → Node 24 on June 16, 2026 (17 days away). Any third-party action still using node20 or node16 as its runtime will emit warnings and eventually break.

Two of the affected actions (cloudflare/pages-action, 8398a7/action-slack) have been archived by their maintainers and will never ship a node24 build, so they require a migration to actively-maintained replacements.

What changed

Version bumps (node20 → node24 builds available):

Action Before After
actions/download-artifact v6 (node20) v8.0.1 (node24)
1password/load-secrets-action (node20) v4.0.0 (node24)
aws-actions/configure-aws-credentials (node20) v6.1.3 (node24)
actions/setup-java (node20) v5.2.0 (node24)
dorny/paths-filter v3.0.2 (node20) v4.0.1 (node24)
mxschmitt/action-tmate (node20) v3.24 (node24)
ruby/setup-ruby (node20) v1.310.0 (node24)

Deprecated/archived action replacements:

  • cloudflare/pages-action (node16, archived by Cloudflare) → cloudflare/wrangler-action@v4.0.0 using pages deploy command. Output .alias.deployment-url.
  • 8398a7/action-slack (node20, archived) → slackapi/slack-github-action@v3.0.3. All JS-template-literal custom payloads converted to proper JSON. process.env.AS_REPO${{ github.repository }}. Webhook URL moved from SLACK_WEBHOOK_URL env var to webhook: input.

Files changed: deploy.yml, cherryPick.yml, deployExpensifyHelp.yml, androidBump.yml, syncVersions.yml, buildAndroid.yml, buildIOS.yml, remote-build-android.yml, remote-build-ios.yml, publishReactNativeAndroidArtifacts.yml, generateTranslations.yml, claude-review.yml, reviewerChecklist.yml, test.yml, announceFailedWorkflowInSlack/action.yml

Test plan

  • Actions with simple version bumps can be pre-tested by adding FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true as a workflow env and verifying CI passes
  • Slack notifications: trigger a deploy failure in staging to confirm the slackapi/slack-github-action payload posts correctly to #deployer
  • Cloudflare Pages: open a PR against main for the docs/ folder to confirm the preview deploy step succeeds and the preview URL comment is posted

No changes to application code. CI/workflow-only.

Made with Cursor

mountiny and others added 3 commits May 30, 2026 09:48
…ain"

This reverts commit b6572e3, reversing
changes made to 9573a6c.
…ompositional-edit-only-report-action-compose"

This reverts commit 6a3c808, reversing
changes made to e09715e.
Node 20 hits EOL April 30 2026 and GitHub removes it as the default
Actions runtime on June 16 2026. Bump every pinned third-party action
to a node24-compatible release and replace two archived actions that
will never ship a node24 build:

- actions/download-artifact   → v8.0.1 (node24)
- 1password/load-secrets-action → v4.0.0 (node24)
- aws-actions/configure-aws-credentials → v6.1.3 (node24)
- actions/setup-java          → v5.2.0 (node24)
- dorny/paths-filter          → v4.0.1 (node24)
- mxschmitt/action-tmate      → v3.24 (node24)
- ruby/setup-ruby             → v1.310.0 (node24)
- cloudflare/pages-action (node16, archived) → cloudflare/wrangler-action v4.0.0
- 8398a7/action-slack (node20, archived) → slackapi/slack-github-action v3.0.3

The slack migration converts all JS-template-literal custom payloads to
proper JSON and moves the webhook URL from an env var to the `webhook:`
input. process.env.AS_REPO references are replaced with
${{ github.repository }}.

The Cloudflare migration switches from the deprecated pages-action to
wrangler-action's `pages deploy` command and updates the output
reference from `.alias` to `.deployment-url`.

Co-authored-by: Cursor <cursoragent@cursor.com>
@OSBotify
Copy link
Copy Markdown
Contributor

A preview of your ExpensifyHelp changes have been deployed to https://71098923.helpdot.pages.dev ⚡️

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.

2 participants