Skip to content

Fix Firebase Deploy CI failure caused by Node.js 20 deprecation#929

Merged
AchoArnold merged 2 commits into
mainfrom
copilot/fix-deploy-github-actions-job
Jun 25, 2026
Merged

Fix Firebase Deploy CI failure caused by Node.js 20 deprecation#929
AchoArnold merged 2 commits into
mainfrom
copilot/fix-deploy-github-actions-job

Conversation

Copilot AI commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

GitHub Actions deprecated Node.js 20 on June 16, 2026 and now forces Node 20-targeting actions to run on Node 24. FirebaseExtended/action-hosting-deploy@v0 (tagged at v0.10.0, Aug 2025) still declares using: node20, causing its credential setup to break under Node 24 and producing the Firebase auth failure:

Error: Invalid response body while trying to fetch https://www.googleapis.com/oauth2/v4/token: Premature close

Changes

  • .github/workflows/web.yml: Pin action-hosting-deploy to commit 500ac625 ("chore: bump action runtime to Node 24", 2026-04-30) instead of @v0. The upstream fix exists on main but has not been released as a tag yet — the @v0 tag still resolves to the pre-fix v0.10.0.
- uses: FirebaseExtended/action-hosting-deploy@v0
+ uses: FirebaseExtended/action-hosting-deploy@500ac625ca2dd40cbd15f7659af953801858032a

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Copilot AI changed the title [WIP] Fix the failing GitHub Actions job 'Deploy' Fix Firebase Deploy CI failure caused by Node.js 20 deprecation Jun 25, 2026
Copilot AI requested a review from AchoArnold June 25, 2026 09:21
@AchoArnold AchoArnold marked this pull request as ready for review June 25, 2026 09:43
@AchoArnold AchoArnold merged commit d3f8899 into main Jun 25, 2026
7 of 8 checks passed
@greptile-apps

greptile-apps Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Pins FirebaseExtended/action-hosting-deploy to a specific commit SHA (500ac625) that bumps the action's declared runtime from node20 to node24, resolving auth failures caused by GitHub Actions now forcing node20 actions to run under Node 24. The @v0 tag still resolves to the pre-fix v0.10.0 release, so a direct commit pin is the only viable workaround until an official release tag is cut.

  • web.yml: Replaces FirebaseExtended/action-hosting-deploy@v0 with @500ac625ca2dd40cbd15f7659af953801858032a; all other workflow steps (validate, Cloudflare deploy) are unchanged.
  • Using a full commit SHA is the recommended security practice for third-party GitHub Actions and is more tamper-proof than a mutable tag, but it should carry an inline comment so future maintainers know to upgrade once a proper release is available.

Confidence Score: 4/5

Safe to merge — a one-line CI dependency update with a well-understood motivation and no changes to application code or secrets handling.

The change is minimal and targeted: it replaces a floating @v0 tag with a full commit SHA that carries the Node 24 runtime fix. Using a full SHA is actually more tamper-proof than the tag it replaces. The only open question is whether the pinned commit may pull in other unreleased changes from upstream main, and there is no inline comment to guide future maintainers when an official release tag is eventually cut.

.github/workflows/web.yml — the bare commit SHA should get a short comment explaining the workaround so it is not inadvertently reverted to @v0 later.

Important Files Changed

Filename Overview
.github/workflows/web.yml Single-line change pins FirebaseExtended/action-hosting-deploy from the @v0 floating tag to a specific commit SHA that bumps the action runtime to Node 24; no functional logic changes, only a CI dependency reference update

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Push to main] --> B[validate job\nNode 24 matrix]
    B --> |lint + test + build| C{validate passed?}
    C -- No --> D[CI fails]
    C -- Yes --> E[deploy job]
    E --> F[Build 🏗️]
    F --> G[Cloudflare Deploy\nwrangler-action@v4]
    F --> H[Firebase Deploy\naction-hosting-deploy@500ac625\nNode 24 runtime]
    G --> I[Deployed to\nCloudflare Pages]
    H --> J[Deployed to\nFirebase Hosting\nlive channel]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Push to main] --> B[validate job\nNode 24 matrix]
    B --> |lint + test + build| C{validate passed?}
    C -- No --> D[CI fails]
    C -- Yes --> E[deploy job]
    E --> F[Build 🏗️]
    F --> G[Cloudflare Deploy\nwrangler-action@v4]
    F --> H[Firebase Deploy\naction-hosting-deploy@500ac625\nNode 24 runtime]
    G --> I[Deployed to\nCloudflare Pages]
    H --> J[Deployed to\nFirebase Hosting\nlive channel]
Loading

Reviews (1): Last reviewed commit: "Fix Firebase Deploy CI failure: pin acti..." | Re-trigger Greptile

Comment thread .github/workflows/web.yml

- name: Firebase Deploy 🚀
uses: FirebaseExtended/action-hosting-deploy@v0
uses: FirebaseExtended/action-hosting-deploy@500ac625ca2dd40cbd15f7659af953801858032a

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Pin comment missing for maintenance tracking

The SHA 500ac625... is pinned because no release tag includes the Node 24 runtime fix, but there is no inline comment explaining this. When a proper release tag is eventually cut, the next engineer will have no context for why a bare commit hash is here instead of @v0 or @v1, making it easy to accidentally "clean up" the pin back to a broken tag. A brief # TODO: replace with release tag once v0.11+ is cut comment would make the intent self-documenting.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

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.

3 participants