我正在研究circle CI和其他解决方案。我对詹金斯在这里做的事情有一点描述
https://softwareengineering.stackexchange.com/a/332400/63472
但更明确地说,我想要一个系统(这是一个硬性要求,否则我们将在现场安装詹金斯,我们宁愿不这样做(。
- 首先,我们安装git挂钩,这样除了CI用户之外,没有用户可以推送到master
- 接下来,我们告诉构建系统查找并检测所有前缀为"submit_"的分支
- 构建系统看到任何新的(或更改的(子分支,在master中合并
- 如果上述合并失败,它将拒绝开发人员,并向他们发送电子邮件
- 如果成功,它将运行构建
- 如果构建失败,再次发送电子邮件给开发人员
- 如果构建成功,则将其合并到master
这样,构建总是稳定的?是否有任何云CI具有此功能?
注意:我们设置github来拒绝任何向master推送的人,这样就没有人可以。。。然后我们在.circleci/config.yml 中进行了此操作
steps:
- checkout
- run: git merge master # merge in to make sure developer was on latest OR reject is merge is not clean
- run:
command: |
./gradlew build
- run: git checkout master # switch back to master branch
- run: git merge $CIRCLE_BRANCH # merge this developers changes in
- run: git push # push his changes
- run: git push origin --delete $CIRCLE_BRANCH #delete remote branch so we don't end up with 1000's of branches (it's on master anyways)