用途:把静态站点(SSG 输出、SPA、LP 等)发布到 Firebase Hosting,并构建成推送默认分支即自动部署的环境。默认使用 Spark 计划(未绑定结算账户),因此不会产生费用;超出免费额度时站点会被停用而非计费。
主要能力:通过 bootstrap 脚本创建/确认 GCP 项目、启用 firebase 相关 API、添加 Firebase、创建 Hosting 站点、创建 CI 专用服务账户并授予最小角色(roles/firebasehosting.admin、roles/serviceusage.apiKeysViewer)、签发密钥并写入 gh secret FIREBASE_SERVICE_ACCOUNT,以及写入变量与 .firebaserc。脚本为幂等,且在无法确认 billingEnabled 为 False 时 fail-closed。
使用方式:需 gcloud CLI、已认证的 gh CLI、Node.js(用固定版 firebase-tools),仓库需在 GitHub 上。复制脚本到 tools/bootstrap-firebase.sh 并改写 PROJECT_ID、SITE_ID、GITHUB_REPO 占位符后执行:gcloud auth login,然后 bash tools/bootstrap-firebase.sh。Firebase 条款须先在控制台接受,否则 addFirebase 会返回 403。随后配置 firebase.json,用固定版本在本地验证:npx --yes "firebase-tools@${FIREBASE_TOOLS_VERSION}" emulators:start --only hosting --project demo-<name>,并放置 .github/workflows/deploy.yml。
适用场景与限制:仅适用于完全静态、无服务端/API/DB 的站点,且需一条构建命令产出输出目录。sandbox(网络受限)无法执行需要网络认证的 bootstrap。PR 触发的作业不部署预览、不持有密钥与写权限,部署仅在默认分支 push 时进行。文中所列版本号、端口、超时与缓存策略等属资料给定内容;未提供的细节暂未说明。