2
votes

I am using CruiseControl.Net for continuous integration and I know how to have CruiseControl.Net automatically deploy a project when an SVN commit is made.

This works well on development and staging servers, but definitely not for production servers.

We are tagging our production releases and so I want to have CruiseControl.Net deploy onto the production server with the latest tagged version. If anyone could point me to the right direction, I would greatly appreciate it!

I do apologize if I am not using the correct phrases. Thank you!

Edit Since I am tagging the trunk, I am hoping for ccnet to deploy to production anytime the trunk is tagged.

1
So, one idea I have is to create another branch for production. The trunk would always contain the latest code. When I am ready for a release, I could create a tag. To push to production, I would merge from the tag to the production branch. When I commit the production branch, that's when auto-deployment would occur through CruiseControl.Net. How does this approach sound? - Abe
P, that merge part sounds dangerous. - Albin Sunnanbo
I agree merging can be dangerous. I would have to try it out, but I am hoping that if I merge strictly from release tags to the production branch there wouldn't be any conflicts. My goal is to just automate the deployment for production. I would only create a release tag on the trunk if it's ready for live. - Abe

1 Answers

2
votes

On my last two projects we created new cc.net project for each production release. We created the project with the good ol' copy-n-paste technique.

But if you do release to production often you could probably do that with a script that checks svn for new production tag and creates a new cc.net project when a new tag is created. Run that script as a cc.net-project with an interval trigger and you're done.