Skip to content

Run the action on Node 24 - #2

Open
ralyodio wants to merge 1 commit into
mainfrom
node24-runtime
Open

Run the action on Node 24#2
ralyodio wants to merge 1 commit into
mainfrom
node24-runtime

Conversation

@ralyodio

@ralyodio ralyodio commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Moves the action off the deprecated Node 20 runtime, so consumers stop carrying the warning.

GitHub forces node20 actions onto Node 24 and annotates every run that uses one. Because this action ships as @v0, that warning lands in every downstream workflow — moshcode's coinpay.yml is where it surfaced.

Three places had to agree

file change
action.yml runs.using node20node24
scripts/build.mjs esbuild target node20node24
package.json engines.node >=20>=24

Changing only the manifest would leave the bundle built for a runtime the action no longer declares — harmless today, misleading later.

dist/index.js came out byte-identical after rebuilding against the new target: nothing in src uses syntax esbuild downlevels between node20 and node24. So the declared runtime changes and the shipped bundle does not, which is the safest possible version of this change. The "Verify dist is up to date" guard passes unchanged.

The repo's own workflows had the same problem

action from to
actions/checkout v4 v7
actions/setup-node v4 v7
pnpm/action-setup v4 v6
actions/upload-artifact v4 v7
actions/github-script v7 v9
codeql-action/upload-sarif v3 v4

Each was confirmed runs.using: node24 by reading its action.yml, not inferred from the version number — codeql-action v3 is node20 and v4 is not, which the deprecation notice never mentions.

CI also moves to Node 24. That one isn't cosmetic: it builds and tests an action that now declares that runtime, so testing on 20 would be testing the wrong thing.

github-script v9 drops require('@actions/github') — that package is ESM-only now. The scan workflow's script only requires fs, which v9 still supports.

Verification

pnpm run check green locally on Node 24: typecheck clean, 35 tests passing, build reproducible.

After merge

The v0 tag needs to move to pick this up, since consumers pin @v0.

🤖 Generated with Claude Code

GitHub is forcing node20 actions onto Node 24 and annotating every workflow
run that uses one, so every consumer of coinpaybot@v0 carries the deprecation
warning — moshcode's coinpay.yml among them.

Three places had to agree, not just the manifest:

  action.yml        runs.using   node20 -> node24
  scripts/build.mjs esbuild target node20 -> node24
  package.json      engines.node >=20 -> >=24

Rebuilding against the new target produced a byte-identical dist/index.js —
nothing in src uses syntax esbuild downlevels between the two — so this changes
the declared runtime without changing the shipped bundle.

The repo's own workflows were pinned to the same deprecated actions:

  actions/checkout            v4 -> v7
  actions/setup-node          v4 -> v7
  pnpm/action-setup           v4 -> v6
  actions/upload-artifact     v4 -> v7
  actions/github-script       v7 -> v9
  codeql-action/upload-sarif  v3 -> v4

Each confirmed `runs.using: node24` before bumping. CI also moves to Node 24,
which it has to — it builds and tests an action that now declares that runtime.

github-script v9 drops `require('@actions/github')` (ESM-only now); the scan
workflow's script only requires `fs`, which v9 still supports.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

2 finding(s)

HIGH/CRITICAL: 2

Severity Rule Location
HIGH manifest-typosquat package.json:19
HIGH secret-generic-credential test/coinpay.contract.test.ts:141

Snippets are redacted; ThreatCrush never prints matched credential material.

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.

1 participant