如何同时从 travis 部署多个 Firebase 托管项目(没有暂存或生产只是其他网站)



我想同时从特拉维斯部署多个火力基地托管项目??,如果是,我会很高兴:)

因为我现在有 10 个项目,所有项目都是相同的代码,我认为对我来说更容易同时从 1 个 git 存储库部署到我的所有网站,现在我一次做 1 个,需要 4-5 个小时才能做到这一点

我的.特拉维斯.yml

language: node_js
node_js:
- "7"
branches:
only:
- master
before_script:
- npm install -g firebase-tools
- npm install -g @angular/cli
script:
- ng build --prod
after_success:
- firebase deploy --token $FIREBASE_TOKEN_1 <-- this is for https://project1.firebaseapp.com
- firebase deploy --token $FIREBASE_TOKEN_2 <-- this is for https://project2.firebaseapp.com
- firebase deploy --token $FIREBASE_TOKEN_3 <-- this is for https://project3.firebaseapp.com
- firebase deploy --token $FIREBASE_TOKEN_4 <-- this is for https://project4.firebaseapp.com
- firebase deploy --token $FIREBASE_TOKEN_5 <-- this is for https://project5.firebaseapp.com
- firebase deploy --token $FIREBASE_TOKEN_6 <-- this is for https://project6.firebaseapp.com
notifications:
email:
on_failure: change
on_success: change

这可能吗?

是的,绝对是。只需在 .firebaserc 文件中声明项目

{ "projects": { "project1": "firebase-project-id-1", "project1": "firebase-project-id-1", ... "project10": "firebase-project-id-10" } }

然后,您只需在每个firebase deploy之间切换活动项目

- firebase use project1 --token $FIREBASE_DEPLOY_KEY1 - firebase deploy --non-interactive --token $FIREBASE_DEPLOY_KEY1 ... - firebase use project10 --token $FIREBASE_DEPLOY_KEY10 - firebase deploy --non-interactive --token $FIREBASE_DEPLOY_KEY10

建立在丹尼斯的伟大答案之上。配置别名后,您可以进一步简化。

您可以使用-P--project标志设置相应的项目,而不是使用firebase use切换"活动"项目,即在部署时可以使用 或 标志设置相应的项目

firebase deploy --token $FIREBASE_TOKEN_1 -P project1

firebase deploy --token $FIREBASE_TOKEN_1 --project project1

从文档中:

您可以通过使用任何 CLI 命令传递--project标志来覆盖用作当前活动项目的内容。[...]如果要对已分配了 prod 别名的 Firebase 项目运行单个命令,则可以运行例如firebase deploy --project=prod

。或在 CLI 的帮助部分中:

$ firebase --help | grep '--project'
-P, --project <alias_or_project_id>    the Firebase project to use for this command

还有一个补充:我假设您可以访问同一用户的所有项目。这在文档中没有明确指定,但令牌与您的用户相关联,而不是与项目相关联。这意味着您应该能够使用相同的令牌成功部署到每个环境。

因此,您的构建脚本可以简化为

after_success:
- firebase deploy --token $FIREBASE_TOKEN -P project1 
- firebase deploy --token $FIREBASE_TOKEN -P project2
- firebase deploy --token $FIREBASE_TOKEN -P project3
- firebase deploy --token $FIREBASE_TOKEN -P project4
- firebase deploy --token $FIREBASE_TOKEN -P project5
- firebase deploy --token $FIREBASE_TOKEN -P project6

相关内容

  • 没有找到相关文章

最新更新