Continuous Integration Progress


I have been addicted to Continuous Integration for the last five years.  The first question I ask when I start a new project is “What does your build look like?”  If the answer doesn’t include the words fully automated or single button press I am extremely disappointed.  It’s really almost a physical reaction; I want nothing to do with any software project that doesn’t rely on an automated build.  I can’t help it of course but honestly, the tools are out there and freely available; there is no excuse at this point.

So all of my projects have automated builds.  I used CruiseControl.NET for many years with much satisfaction.  Over time I built up a generic NAnt build script that all my projects relied on.  This script automated the works; unit testing, code coverage, static analysis, coding standards checking, etc.  I haven’t looked at it in a long time but I opened it today…

image

it’s 1500 lines of XML!!!  For years it has provided bang for the buck because I have used it in over 20 projects but man, 1500 lines of XML is not something you ever want to look at.

I opened this script because I need to port one of my old CruiseControl.NET builds to JetBrains TeamCity 4.5.  My initial thought was that I would simply configure TeamCity to use the NAnt Build Runner to kick off targets in my existing script much like CruiseControl.

It didn’t take long to realize that TeamCity is too awesome for my monster script.  In one hour I was able to completely throw away my 1500 lines and get my project building and unit tested in TeamCity with zero lines of script.  Zero lines!

I love to see how much progress is being made in continuous integration tooling.  I will post shortly about what an incredible piece of software JetBrains TeamCity 4.5 is.

Popularity: 5% [?]

Related posts:

  1. Continuous Integration with Charisma

About the Author

My name is Zachary Ruiz. This is my blog. I have a day job, but this blog contains my own thoughts, opinions and musings about software and technology which do not reflect those of my employer(s).