2017-06-09 22 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 

注意:我還沒有嘗試過這個,所以它可能會或可能不會與新的構建階段功能結合使用。