small repo to experiment with various aspects of circleci, gitflow and release process
- developer creates feature branch from latest develop branch - e.g.
git checkout -B feature/feat-some-feature
- developer concludes work and submits PR for feature review
- PR is reviewed and approved by peer
- feature branch is merged into develop branch
- feature branch is discarded/deleted
- release build is offered by CI
- release build is approved by CODEOWNERS. a release branch is created with bumped version(s) & updated documenation/changelog. release is deployed to staging environment.
- release is tested & reviewed (both branch code & staging environment)
- release is promoted to production ( merged to trunk branch and release registered)
- release is created
- release is reviewed & rejected
- release rolled back from staging && release branch discarded/deleted
- only the automation account may merge/commit to trunk branch ( production )
- only CODEOWNERS may approve PRs
- changes must have 100% test coverage in order to be promoted into develop branch
- only changes from a release branch may be merged into trunk branch
- implement release branch creation workflow
- implement release version bump and changelog creation
- implement release promotion
- implement automation merge to trunk restriction
- implement CODEOWNERS PR restriction
- test what happens when a release branch merge fails - is there some compensating action that makes sense here?
- test a release branch sync scenario ( hotfix applied to trunk )
- investigate - should multiple releases be supported