当我推送到任何分支时,如何在舞台上运行TravisCI?

时间:2017-05-31 06:43:25

标签: heroku travis-ci

这是我的travis.yml。我试图找出当我推送到任何分支时如何运行。在app下,我被迫放置我正在处理的特定分支。我想使用all_branches: true。如果我使用all_branche: true,那么key下的app是什么?我想使用像stage这样的通用词,但我认为它正在寻找特定的分支名称,因为当我尝试stage时,我得到了404。此外,app key(在这种情况下feature/travisCi)是否必须与branch相匹配?文档不是很清楚,所以我正在寻找更深入的解释。

language: node_js
node_js:
- node
- '6'
before_deploy:
- npm run build
deploy:
  provider: heroku
  api_key:
    secure: ... secret key
  app: 
    feature/travisCi: morning-engine-36163
  on:
    repo: hipshot/dashboardfe
    branch: feature/travisCi

1 个答案:

答案 0 :(得分:1)

仅当您希望将每个分支部署到Heroku中的其他应用程序时,才需要app密钥的分支规范。

例如,如果您要将master分支部署到生产Heroku应用程序中,并且您有一个staging分支,那么您可能希望将其分配到您的暂存Heroku应用程序,然后您可以执行以下操作:

language: node_js
node_js:
- node
- '6'
before_deploy:
- npm run build
deploy:
  provider: heroku
  api_key:
    secure: ... secret key
  app: 
    master: heroku_app_name_for_production
    staging: heroku_app_name_for_staging
  on:
    all_branches: true

但是,如果您只有一个Heroku应用,并且您希望在任何分支机构中进行任何更改,那么就不需要在branch: heroku_app下指定app部分,并且你可以简单地使用:

language: node_js
node_js:
- node
- '6'
before_deploy:
- npm run build
deploy:
  provider: heroku
  api_key:
    secure: ... secret key
  app: your_heroku_app_name
  on:
    all_branches: true

另一种典型情况是仅向Heroku部署对master分支的更改。为此:

language: node_js
node_js:
- node
- '6'
before_deploy:
- npm run build
deploy:
  provider: heroku
  api_key:
    secure: ... secret key
  app: your_heroku_app_name
  on:
    branch: master

回到您的具体示例,如果您要将部署限制到feature/travisCi分支,这应该可行:

language: node_js
node_js:
- node
- '6'
before_deploy:
- npm run build
deploy:
  provider: heroku
  api_key:
    secure: ... secret key
  app: morning-engine-36163
  on:
    branch: feature/travisCi