I’m looking for some recommendations to do project building and deployment automatically.
Our current development setup uses ASP.NET, SVN, CCNET and an MSBuild script for the dev server build. I was thinking of switching over to Cruise instead of CCNET though I’m not sure if that gives me anything extra that I don’t have already.
What I’d like to automate is the process from after an automated build is done to updating the live site with the new changes. Site updates can include base site updates as well as client updates which can be code and/or database changes so the process needs to be flexible enough so it can handle those scenarios.
One of my sources of inspiration for this came from this video as well as the endless hours spent doing updates each month.
For smaller or personal projects, I would recommend using something like the free (and excellent) TeamCity by JetBrains. Unit test automation, continuous integration, and rules for what happens after a build (including moving it around to different locations).
For larger teams, I've actually found a bit of build automation in the form of custom MSBuild tasks and RoboCopy works best. This nice combination between manually promoting builds between environments and using MSBuild & RoboCopy to automate parts of this process creates clean breaks between environments (with very few 'oops I didn't mean to push that there' mistakes). It also lets us have QA review builds before promoting.
Update 7/31/2014:
I've used custom TFS build templates with success. They're a bit complicated, but you can do quite a few cool things with them.
For open source projects (like NuGet libraries) hosted on GitHub, I don't think you can beat AppVeyor. I've got a few projects like Mailchimp.NET that have complete build and NuGet deploy automation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With