Skip to content

ci: FirebaseExtended/action-hosting-deploy still on Node.js 20 (deprecated June 2026) #388

@niklam

Description

@niklam

Problem

The Release workflow annotates every run with:

Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: `FirebaseExtended/action-hosting-deploy@v0`. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026.

We use `FirebaseExtended/action-hosting-deploy@v0` in `.github/workflows/firebase-hosting-release.yml` to deploy the website. The action's own `action.yml` still declares `using: "node20"` as of the latest release (v0.10.0, 2025-08-18) and the repo has no Node 24 release yet.

Upstream issues tracking this (both still open):

Timeline

  • 2026-06-02 — GitHub will force Node 20 actions to Node 24 by default. The action may or may not work on Node 24 runtime.
  • 2026-09-16 — Node 20 is removed from the runner. The action breaks hard unless upstream releases a Node 24 version.

Options

  1. Wait for upstream — watch feat(audio): Race Engineer voice pipeline + ElevenLabs TTS generator (#439) #440 / feat(scenario-harness): dev tool to play Race Engineer scenarios without iRacing #448. Low effort, but risk of the website deploy breaking if upstream is slow.
  2. Opt into Node 24 early — set `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true` on the workflow / job and verify deploys still work. Buys us certainty before the June cutover.
  3. Replace the action — deploy Firebase Hosting via `firebase-tools` directly in a `run:` step (we already depend on `firebase-tools` in devDependencies). Removes the third-party action entirely.

Suggested path

Start with option 2 (opt-in flag) on a draft PR to verify the action works under Node 24. If it does, land that as a holding fix. If upstream hasn't shipped a Node 24 release by ~August 2026, migrate to option 3.

Files

  • `.github/workflows/firebase-hosting-release.yml` — the only workflow using this action.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions