0

I am looking into circle CI and other solutions as well. I have a slight description of what we have jenkins do here

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

but to be more clear, I want a system(this is a HARD requirement or we will go with installing jenkins on-site which we prefer to not do).

  • First, we install git hooks so no user but the CI user can push to master
  • Next, we tell the build system look for and detect all branches prefixed with "submit_"
  • The build system sees any new(or changed) submit_ branch, merges in master
  • IF above merge fails, it rejects developer, sends them an email
  • IF success, it runs the build.
  • IF build fails, again, email to developer
  • IF build succeeds, it then merges it to master

In this way, the build is always stable? Is there any cloud CI that has this feature?

Dean Hiller
  • 19,235
  • 25
  • 129
  • 212

1 Answers1

2

NOTE: We setup github to reject anyone pushing to master so no one can...then we did this in .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)
Dean Hiller
  • 19,235
  • 25
  • 129
  • 212