Continuous Integration with Bamboo - reference
Plan => Build => Deployment
Plan
Associate a repository, Write a trigger
SVN:
Dev server:
- Points to 'develop' branch
- As soon as developer commit the code in 'develop' branch it is automatically deployed in Dev server.
- svn switch . (or) svn up
- svn up -> has to be run by a cron in few seconds interval
- svn switch ? <TODO>
Test server:
- Points to a <tag>
- A <branch> is created from Dev branch at certain point when the stories are ready for testing.
- A <tag> is created from <branch> and deployed in Test server
- svn switch <tag>
- Testing happens in Test server
- When bugs are found, they are fixed in <branch>.
- <tag+1> is created from <branch> when it is ready for deployment in Test server
- The cycle continues from steps 3 to 7
UAT server:
- Points to a <tag>
- When a QA certified <tag> is available from Test server it is deployed in UAT
- svn switch <tag>
- Testing happens in UAT server
- The bugs are fixed in <branch>
- The testing and deployment cycle continues in Test server
- The cycle continues from 2 to 6
Production Server:
- Points to a <tag>
- When a QA certified <tag> is available from UAT server it is deployed in PROD
- svn switch <tag>
- Testing happens in PROD server
- The bugs are fixed in <branch>
- The testing and deployment cycle continues in Test &UAT server
- The cycle continues from 2 to 6
Practical Issues:
1. Say Production server has <tag1.1.0> and it has got a bug
2. The Test server has <tag1.1.1> (one version ahead). So, we cant fix our issue in <tag1.1.1> and deploy in UAT & Prod. In such cases create a <hotfix_branch> from production <tag>. Fix those issues and deploy in UAT & PROD. Then merge the <hotfix_branch> with 'develop' and Test branch.
GIT:
Dev server:
git checkout <commitid>?
<TODO>
Test server:
git checkout <commitid>?
<TODO>
git checkout <commitid>?
<TODO>
Test server:
git checkout <commitid>?
<TODO>
UAT server:
git checkout <commitid>?
<TODO>
git checkout <commitid>?
<TODO>
Prod server:
git checkout <commitid>?
git checkout <commitid>?
<TODO>
Comments
Post a Comment