我想同时从特拉维斯部署多个火力基地托管项目??,如果是,我会很高兴:)
因为我现在有 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