Skip to content

ci(release): force Node 24 for JS actions + add workflow_dispatch - #2820

Merged
bpamiri merged 1 commit into
mainfrom
peter/release-node24-force
May 27, 2026
Merged

ci(release): force Node 24 for JS actions + add workflow_dispatch#2820
bpamiri merged 1 commit into
mainfrom
peter/release-node24-force

Conversation

@bpamiri

@bpamiri bpamiri commented May 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

Unblocks the stuck v4.0.2 release. The release push from #2819 failed in ~13–33s, before any step ran — the pre-hooks of Wandalen/wretry.action@v3 (the lone Node 20 action, wrapping softprops/action-gh-release) threw Argument list too long spawning the node20 binary.

Root cause: GitHub's forced Node 20→24 runner migration (forced default 2026-06-02), not our config:

  • Run Release 4.0.1 — merge develop into main #2769 (4.0.1) passed 7 days earlier with the identical workflow + action.
  • The develop snapshot path (same wretry@v3) succeeded 16 min before the failed release, on a pre-migration runner.
  • The failure is at job init (pre-hook), so no step-exported env is involved — it's the deprecated node20 launcher.

Changes

  • FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true (workflow env:) — routes all JS actions, including wretry@v3, through Node 24, bypassing the broken node20 path. GitHub's documented remedy.
  • workflow_dispatch trigger — re-fire a stuck/failed release from the Actions tab without a fresh push. Channel/version key on GITHUB_REF (main → stable, develop → snapshot), so no logic changes.

⚠️ Merging this re-fires the v4.0.2 release

The push to main triggers release.yml (now on Node 24): builds artifacts, auto-tags v4.0.2, dispatches homebrew/scoop + the develop bump. Prior failed attempts created no tag/release, so there's no double-publish risk.

Follow-up

  • Port the same FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 line to develop's release.yml so snapshots don't break as the migration reaches their runners.

🤖 Generated with Claude Code

The 4.0.2 release push (#2819) failed before any step ran: the pre-hooks of
Wandalen/wretry.action@v3 -- the lone Node 20 action in the job, wrapping
softprops/action-gh-release -- threw "Argument list too long" spawning the
node20 binary. Root cause is GitHub's forced Node 20 -> 24 runner migration
(forced default 2026-06-02), not workflow config: run #2769 (4.0.1) passed
7 days earlier with the identical setup, and the develop snapshot path (same
action) succeeded 16 min before on a pre-migration runner.

- Set FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true at workflow level so all JS
  actions (including wretry@v3) run on Node 24, bypassing the broken node20
  launch path. This is GitHub's documented remedy for the transition.
- Add a workflow_dispatch trigger so a stuck/failed release can be re-fired
  from the Actions tab without a fresh push. Channel selection keys on
  GITHUB_REF: dispatch against main -> stable, develop -> snapshot.

Merging to main re-fires release.yml and completes the v4.0.2 release; prior
failed attempts created no tag/release, so there is no double-publish risk.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Peter Amiri <peter@alurium.com>
@bpamiri
bpamiri merged commit b1755b3 into main May 27, 2026
1 check passed
@bpamiri
bpamiri deleted the peter/release-node24-force branch May 27, 2026 13:59
bpamiri added a commit that referenced this pull request May 27, 2026
Reconciles develop's release.yml with the main hotfix (#2820) and corrects
the dispatch-token permission docs.

- Port FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 + workflow_dispatch from #2820
  (currently main-only). Without this, the next develop->main release would
  merge develop's older release.yml over main's and silently drop the Node 24
  fix, so 4.0.3 would hit the same "Argument list too long" failure that
  blocked 4.0.2 (#2819). This makes develop a superset of main, so future
  release merges stay conflict-free.
- Fix token-permission comments (actions: write -> contents: write) for both
  DOWNSTREAM_DISPATCH_TOKEN and LINUX_REPO_DISPATCH_TOKEN. POST /dispatches
  needs contents: write for fine-grained PATs; the mis-documented permission
  is why LINUX_REPO_DISPATCH_TOKEN was scoped actions: write and 403'd on the
  4.0.2 apt/yum dispatch.

Signed-off-by: Peter Amiri <peter@alurium.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bpamiri bpamiri mentioned this pull request Jun 10, 2026
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