Fix Firebase Deploy CI failure caused by Node.js 20 deprecation#929
Conversation
|
|
Up to standards ✅🟢 Issues
|
Greptile SummaryPins
Confidence Score: 4/5Safe 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
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]
%%{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]
Reviews (1): Last reviewed commit: "Fix Firebase Deploy CI failure: pin acti..." | Re-trigger Greptile |
|
|
||
| - name: Firebase Deploy 🚀 | ||
| uses: FirebaseExtended/action-hosting-deploy@v0 | ||
| uses: FirebaseExtended/action-hosting-deploy@500ac625ca2dd40cbd15f7659af953801858032a |
There was a problem hiding this comment.
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!
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 atv0.10.0, Aug 2025) still declaresusing: node20, causing its credential setup to break under Node 24 and producing the Firebase auth failure:Changes
.github/workflows/web.yml: Pinaction-hosting-deployto commit500ac625("chore: bump action runtime to Node 24", 2026-04-30) instead of@v0. The upstream fix exists onmainbut has not been released as a tag yet — the@v0tag still resolves to the pre-fixv0.10.0.