Team, I would like to implement CI CD using SQLcl Project Across from Dev to UAT to Production Environment.
In the current structure as demonstrated in https://www.youtube.com/watch?v=EM3_2Dd3LOs&t=1430s
The main branch is created as the base branch and then feature branches are crafted out for further developments.
Dev1 creates features-1, and use project stage to stage the changes and merge the changes to main branch.
Dev2 creates features-2 from main branch, and use project stage to stage the changes. Further creates gen artifact and then deploy to release the changes to main aka prod. Of course, we can change DB connection to deploy the same artifact to Production too.
What if we don't want to push all feature branches which have been released to UAT to production too!
The business thinks F1 and F3 should be released to Production as F2 is low priority and should be released in next quarter.
Has anyone implemented a standard git-flow strategy for pushing objects from Dev to UAT to Production. Picking only those changes which we need to push to main/master. ?
I have created a main and dev branch in my git and then created a feature branch.
In the feature branch F1, Dev1 does DB changes , uses project export then commits changes and push to git server.
In the feature branch F2, Dev2 does DB changes, uses project export then commits changes and push to git server.
TL, creates a releases a branch from dev and then merge F1 and F2 on R1.
In the release branch R1, TL perform
merge conflict resolution
project stage against dev branch
project release, artifact and then connect to UAT DB instance to deploy.
Once QA is happy in UAT , and then project stage is done against main branch by changing the default based branch to main
project release, artifact and then connect to PROD DB instance to deploy.
If the release is okay then R1 is merge back to Git Dev branch and Git Main Branch.
The process is repeated by Dev1 creating feature F3 branch, Dev2 creating Feature F4 branch and Dev3 creating Feature F5 branch. Commit the project export changes to Git Server.
TL creates a release branch R2 from dev and then merge F3 and F5 on R2.
In the release branch R2, TL perform
merge conflict resolution
project stage against dev branch
project release, artifact and then connect to UAT DB instance to deploy.
Once QA is happy in UAT , and then project stage is done against main branch by changing the default based branch to main
project release, artifact and then connect to PROD DB instance to deploy.

Appreciate any input(s)/feedback on my strategy of changing base branch to switch b/w dev and main and hand pick features to be released to Production branch.
I am on SQLcl 24.3.2.0
Thanks, Ajax