GitLab CI/CD中用Firebase命令行部署指定子域及配置文档查询
部署背景与现有配置
已搭建的基础流程
- Firebase Hosting已配置dev、prod两套环境及对应子域名
- GitLab CI/CD已适配分支触发规则:合并dev分支自动部署dev环境,合并master分支自动部署prod环境
- 现有dev环境GitLab CI部署脚本:
script: - npm install -g firebase-tools - yarn - yarn build-dev - firebase use env-dev --token $FIREBASE_TOKEN - firebase deploy -m "Pipe $CI_PIPELINE_ID Build $CI_BUILD_ID" --only hosting --non-interactive --token $FIREBASE_TOKEN
- prod环境部署仅需将环境切换为
env-prod即可正常部署到主域名 - 子域名部署的现有实现方式:需在
firebase.json中显式指定site配置,示例配置如下:
{ "hosting": { "site": "myproject-dashboard-prod", "public": "dist", "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }
注:dev环境对应可将site值修改为myproject-dashboard-dev
待解决的核心问题
- 未找到Firebase Hosting官方API参考文档
- 期望直接在Firebase部署命令中指定目标site参数,实现CI/CD流程动态部署,无需动态修改
firebase.json,目标命令示例:
- firebase deploy -m "Pipe $CI_PIPELINE_ID Build $CI_BUILD_ID" --only hosting --non-interactive --token $FIREBASE_TOKEN --site myproject-dashboard-dev
注:当前firebase.json为静态读取,module.exports这类动态写法无法生效
3. 希望了解Firebase是否支持指定使用自定义配置JSON文件的能力,适配多站点部署需求
内容的提问来源于stack exchange,提问作者foufrix
相关产品推荐
相关产品推荐

