我正在使用TravisCI's Build Stages将我的工作分为两个阶段:
我希望Travis在提交给两个GitHub分支master
和dev
时运行作业,并将请求提取到master
和dev
。但是,我只想在提交master
时运行第二阶段。
有没有办法在提交到非master
的分支和拉取请求时完全忽略第2阶段?
这是我.travis.yml
在写这篇文章时的样子:
https://github.com/SammyIsra/photostream-react/blob/c354a62c3cc963b345a5c2fb95658c90ddc39d21/.travis.yml
更新的 这似乎还不可能。但是,从this comment on the Build Stages feedback board开始,TravisCI团队可能正在开展类似的工作。每当我得知它被添加为一个特征,或者它肯定不可能,我将改变这个问题。
答案 0 :(得分:0)
在build stages section中触发作业时似乎没有办法忽略特定分支,但是看起来只有在推送到 loadData = () => {
let deferred = this.$q.defer();
this.siAsset.getAllcomponents().then((resp) => {
if(resp.statusCode){
deferred.reject('No Mappable Assets Found');
}else{
deferred.resolve(resp)
}
}, (err) => {
if(err =="TypeError: Cannot read property 'components' of null"){
deferred.reject('No Mappable Assets Found');
}else{
this.$log.error(err)
}
})
return deferred.promise
}
时才会触发部署。
在构建阶段.config(($stateProvider) => {
"ngInject";
$stateProvider
.state('map', {
url: '/map',
component: 'map',
resolve:{
loadData:(siMapUtils) => {return siMapUtils.loadData()},
isAuthenticated: (siUser) => {
return siUser.isAuthenticated()
},
isAccessible: (siRoutePermissions) => {
return siRoutePermissions.validate({
permissionModules:['MAP_READ']
})
}
}
});
})
部分,您可以将master
命令包装在快速Bash script
语句中以测试environment variable which shows what branch you're on:
npm run build
然后,在Surge部署中,您可以restrict the deployment to a particular branch使用:
if
NPM deployment基本相同:
if [ TRAVIS_BRANCH == "master" ]; then npm run build; fi
注意:我自己没有尝试过这些,因此它可能会或可能不会与新的构建阶段功能结合使用。