We are trying get our CI/CD up and running and I was after some feedback on it.
We want to use VSTS build and Release management. The release management uses the idea of 'promotion' of the same build through the various environments.
- We tend to use feature branches, which are then merged back into develop when good enough. Then our CI, picks up changes to the develop branch, triggers a build and the created artifacts are used for release.
- The build happens on our premises build server, using a build agent looking at VSTS.
- It is tested etc as it gets promoted through the environments, assuming tests etc pass.
- Then when it was final approved to make it to production (by approval), we want it to update source control by merging into master + tag with the version that was deployed to production. So this means that the git merge is handled by a step late on in the release management.
Firstly, is this a decent setup for our start to CI/CD? Any suggestions to improve it? In particular the way the source control part is, but we want to make any aspect of it better.
Should we be merging to master earlier, and then only building our CI/CD from that? And use tags or something to denote releases which made it to production?
Note: Couldn't find a tag for VSTS.