Reputation: 31
I have springboot monorepo with almost 5 libraries & 5 services,
I have used trunkbased model(master & release) for this repo inorder to implement Continous Delivery
The following builds are configured on master branch
CI Build Build the artifact whatever changed - -> QualityCheck > artifact(.jar) -> Deploy to Development Env
Nightly build Build all libraries & services -> QualityCheck -> Deploy all jar's into QA environment
Once we are ready to release, we will create a release branch from master
Again for release branch I am running the release build with the steps same as in Nightly build.
Release build Build all libraries & services -> QualityCheck -> Deploy all jar's into PROD environment
The Concerns that I have is
Upvotes: 3
Views: 4420
Reputation: 15318
First you need to get rid of Nightly builds. You run them because it takes too long to run the whole thing per commit - that's the part that you need to optimize. In order to speed up your build & deploy you need to work only with the affected service(s):
But no matter which approach you choose - the best way to keep all the integration in a working state is a) not to change the API too frequently b) to make changes backward compatible for some time.
As for branching.. You don't have to create release branches and build them. If you pushed to master and that binary passed all the checks - that exact binary should be deployed to PRD.
Upvotes: 2