ci(release): force Node 24 for JS actions + add workflow_dispatch - #2820
Merged
Conversation
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>
2 tasks
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>
Merged
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.
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, wrappingsoftprops/action-gh-release) threwArgument list too longspawning thenode20binary.Root cause: GitHub's forced Node 20→24 runner migration (forced default 2026-06-02), not our config:
wretry@v3) succeeded 16 min before the failed release, on a pre-migration runner.Changes
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true(workflowenv:) — routes all JS actions, includingwretry@v3, through Node 24, bypassing the broken node20 path. GitHub's documented remedy.workflow_dispatchtrigger — re-fire a stuck/failed release from the Actions tab without a fresh push. Channel/version key onGITHUB_REF(main → stable, develop → snapshot), so no logic changes.The push to main triggers
release.yml(now on Node 24): builds artifacts, auto-tagsv4.0.2, dispatches homebrew/scoop + the develop bump. Prior failed attempts created no tag/release, so there's no double-publish risk.Follow-up
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24line todevelop'srelease.ymlso snapshots don't break as the migration reaches their runners.🤖 Generated with Claude Code