circleCI是否可以像Jenkins一样防止错误的提交落在master上?

时间:2020-03-06 14:57:36

标签: jenkins travis-ci circleci cloudbees codeship

我正在研究CI圈和其他解决方案。我对詹金斯在这里所做的事情有一个简短的描述

https://softwareengineering.stackexchange.com/a/332400/63472

但是更清楚地说,我想要一个系统(这是一个硬性要求,否则我们将在现场安装jenkins,而我们不愿意这样做)。

  • 首先,我们安装git hooks,以便没有用户,但CI用户可以推送到master
  • 接下来,我们告诉构建系统查找并检测所有以“ submit_”为前缀的分支
  • 构建系统会看到任何新的(或更改的)submit_分支,并合并到master
  • 如果上述合并失败,它将拒绝开发人员,向他们发送电子邮件
  • 如果成功,它将运行构建。
  • 如果构建失败,再次通过电子邮件发送给开发人员
  • 如果构建成功,则将其合并到主版本

这样,构建始终稳定吗?有没有具有此功能的云CI?

1 个答案:

答案 0 :(得分:2)

注意:我们将github设置为拒绝任何推挤大师的人,因此没有人可以...然后我们在.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)