Может ли circleCI предотвратить попадание плохих коммитов на мастера, как Дженкинс? - PullRequest
0 голосов
/ 06 марта 2020

Я изучаю круг CI и другие решения. У меня есть небольшое описание того, что у нас есть Дженкинс здесь

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

, но чтобы быть более ясным, я хочу систему (это жесткое требование или go мы установим на месте jenkins, чего мы предпочитаем не делать).

  • Сначала мы установим git хуков, поэтому ни один пользователь, кроме пользователя CI, не сможет освоить sh
  • Далее мы сообщаем системе сборки искать и обнаруживать все ветви с префиксом "submit_"
  • Система сборки видит любую новую (или измененную) ветку submit_, которая сливается в master
  • ЕСЛИ выше слияние не удается, он отклоняет разработчика, отправляет им электронное письмо
  • ЕСЛИ успешно, он запускает сборку.
  • ЕСЛИ сборка не удается, снова, электронное письмо разработчику
  • Если сборка прошла успешно, она объединяет ее с мастером

Таким образом, сборка всегда стабильна? Есть ли облачный CI с такой функцией?

1 Ответ

1 голос
/ 03 апреля 2020

ПРИМЕЧАНИЕ. Мы настроили 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)
...