2017-06-09 23 views
1

我使用TravisCI's Build Stages我的工作分开,分为两个阶段:有条件地触发TravisCI构建阶段?

  1. 构建和测试在多种环境。
  2. 如果阶段1通过,则进行构建和部署。

我想特拉维斯运行在提交的作业两个分支的GitHub,masterdev,拉请求masterdev。但是,我只想在发生master的提交时运行第二阶段。

有没有一种方法可以完全忽略阶段2提交不是master的分支,以及对请求的请求?

这是我的.travis.yml看起来像在写这篇的时候: https://github.com/SammyIsra/photostream-react/blob/c354a62c3cc963b345a5c2fb95658c90ddc39d21/.travis.yml

更新: 这似乎是不可能的呢。但是,TravisCI团队可能正在从事类似的工作,截至this comment on the Build Stages feedback board。每当我知道它被添加为一个功能,或者它永远不可能,我会改变这个问题。

回答

0

似乎没有办法在触发build stages section中的作业时忽略特定分支,但看起来像是只有在推送到master时才触发您的部署。

在构建阶段script部分,你可以在一个快速猛砸包裹npm run build命令if语句来测试environment variable which shows what branch you're on

if [ TRAVIS_BRANCH == "master" ]; then npm run build; fi 

然后,在你的浪涌部署部分,您可以restrict the deployment to a particular branch有:

deploy: 
    ... 
    on: master 

,基本上同为NPM deployment

deploy: 
    ... 
    on: 
     branch: master 

注意:我还没有尝试过这个,所以它可能会或可能不会与新的构建阶段功能结合使用。