Hi,
I use the atlassian/firebase-deploy pipe and I've found that it doesn't support node 24, which is required by the latest firebase-functions at this time, so I've made you a patch.
Details below.
All the best,
-Peter
— —
atlassian/firebase-deploy:5.1.1 can't deploy Cloud Functions whose functions/package.json has "engines": { "node": "24" }. The deploy fails with:
Error: Detected node engine 24 in package.json, which is not a supported version. Valid versions are 20, 22
The error comes from firebase-tools, not from the NodeJS version the pipe switches to. The Dockerfile pins firebase-tools@13.*, and version 13 doesn't know about NodeJS 24, so setting NODE_JS_VERSION: '24' can't fix it. firebase-tools 15 supports NodeJS 20, 22 and 24.
I'd have opened a pull request, but Bitbucket no longer allows forks outside the parent workspace. Here's the patch instead. It's also on a branch in a public copy of the repo: https://bitbucket.org/suredocs1/firebase-deploy/commits/9724ec062a0a9752b3233885ecef15fa922bdaca
--- a/Dockerfile
+++ b/Dockerfile
- curl=7.* \
+ curl=8.* \
gnupg2=2.* \
- && curl -sL https://deb.nodesource.com/setup_20.x | bash - \
+ && curl -sL https://deb.nodesource.com/setup_22.x | bash - \
&& apt-get install --no-install-recommends -y \
- nodejs=20.* \
- && npm install -g n@9.* && n 18 && n 20 \
- && npm install -g firebase-tools@13.* \
+ nodejs=22.* \
+ && npm install -g n@10.* && n 20 && n 24 && n 22 \
+ && npm install -g firebase-tools@15.* \
--- a/pipe/main.py
+++ b/pipe/main.py
-DEFAULT_NODE_JS_VERSION = '20'
+DEFAULT_NODE_JS_VERSION = '22'
Notes on the patch:
curl=8.*: python:3.10-slim is now based on Debian trixie, which ships curl 8. Our image built with the 8.* pin, which suggests the current curl=7.* pin no longer builds at all.- NodeJS 18 dropped: firebase-tools 15 needs NodeJS 20 or later. That makes this a major release, like 5.0.0 was for firebase-tools 13.
- Default changed from 20 to 22: NodeJS 20 reached end of life in April 2026.
- The same branch also updates the README (the options are now
20, 22, 24), the tests (custom_node_18 becomes custom_node_24, and the functions fixture's engine is now 24), the NodeJS setup in the pipe's own CI, and the .changes/next-release entries for semversioner.
Tested: we built this image and deployed our production Firebase project with it, using NODE_JS_VERSION: '24' and Cloud Functions on engines.node 24 alongside Hosting.
- image build (public repo): https://bitbucket.org/suredocs1/firebase-deploy/pipelines/results/3
- production deploy with
pipe: docker://pbsuredocs/firebase-deploy:6.0.0-sd1, green on 2026-10-20 (private repo, so it may be visible to Atlassian staff only): https://bitbucket.org/suredocs1/suredocs/pipelines/results/1245/steps/%7B63f8d678-e2e5-4fb5-8c92-be4fd849e111%7D
We haven't run the pipe's own test/test.py, because it deploys to your test Firebase project.
Could this be released as firebase-deploy 6.0.0? We'll switch back to the official pipe once it supports NodeJS 24.