I was tasked with updating the build process now to be more efficient, and I spent a week reading the best practices and strategies, but I still have not found a solution to our current problem.
Background
We currently have one monolithic build / application that really needs to be divided into at least 4 applications with some shared libraries. We are not currently affiliated with the branch unless we are absolutely obligated. We have a teamcity build, which is based on each registration in TFS. When we are ready for release, we have code hangs and fixes only to fix bugs found in QA. Obviously, this is a terrible practice, and we finally got approval to change it.
Suggested Solutions
The proposed solution is to split the application and have different release cycles for each application, switch from ant to maven and branch to release.
Branching. Right now we have the main trunk in source control. I think we want to separate from the trunk when we are ready for release, and we will update the branch for errors discovered in QA. When the assembly is ready for release, merge the branch back into the trunk.
This is how I planned to configure TFS.
+Apps
+App1
+Components
+Core
+Web
+Branches
+App2
+Components
+Core
+Web
+Branches
+Libraries
+Lib1
+Lib2
+Branches
Thinking about managing all the POMs and versions in the POM seems too complicated right now. I read in the maven release plugin, but I'm not sure if it can work the way I think we want.
, teamcity . , 3 teamcity. Dev, , QA QA . , QA, QC teamcity, teamcity. QA, productiongity team, , , QA, , QA.
, .
?
QA- , ?
teamcity ?
POM , , , ?