1

我想同时从 Travis 部署多个 Firebase 托管项目,这是可能的??如果是,我会很高兴 :)

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

我的 .travis.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

那可能吗?

4

2 回答 2

5

是的,一点没错。只需在 .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

于 2017-05-20T16:18:17.240 回答
0

丹尼斯的出色回答为基础。配置别名后,您可以再简化一点。

您可以为当前命令显式设置项目,而不是使用 切换“活动”项目firebase use,即在部署时您可以使用-Por--project标志设置相应的项目

firebase deploy --token $FIREBASE_TOKEN_1 -P project1

或者

firebase deploy --token $FIREBASE_TOKEN_1 --project project1

文档中:

--project您可以通过使用任何 CLI 命令传递标志来覆盖用作当前活动项目的项目。[...]如果您想对您分配了 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

于 2021-05-01T16:19:14.110 回答