The Inquisitive Coder – Davy Brion’s Blog

Trying to walk that thin line between intelligence and ignorance

The CI Build should be a given

Posted by Davy Brion on August 19th, 2008

Just read an interesting post by Tim Barcz. It’s about a team struggling to adopt agile practices, and if given a chance to start over, what they should set up first: a CI build or a unit testing process.

I don’t understand why someone would even have to choose between them. Setting up a regular CI build (with that i mean a simple compile + running all the tests) for a project should never take more than 10 minutes, tops. That is assuming that you already have a build server in place, obviously. But with Team City being so incredibly easy to install and configure, that can no longer be an issue.

So what does it take then? Drop in a simple, standard build script which builds your project and runs the tests, add a build configuration and you’re done. Setting up a basic CI build should never take more work than that, unless you have some very specific needs, or the project structure is somewhat messy… as in: it doesn’t compile if you don’t have certain assemblies in folders that are either hardcoded or ‘assumed’ to be there… which should be avoided at all times :)

Seriously though, long build scripts or requiring a lot of time to set up a new CI build are all signs that your CI process in general needs some refracturing (nope, not a typo).

And in case you needed some motivation: even TFS 2008 allows you to set up a CI build in less than 5 minutes of work :)

  • Share/Save/Bookmark

2 Responses to “The CI Build should be a given”

  1. Tim Barcz Says:

    “That is assuming you already have a build server in place, obviously”

    In this particular case the developer has neither. There is no build server. So that increases the time component. Also if you’re new to CI, getting TeamCity or CruiseControl.NET up and running can be a bear.

    If you’re using CruiseControl for example, you’re now having edit xml files to get CruiseControl up. You now have to create a build file, which introduces another layer of complexity learning Nant/Msbuild.

    I would suggest you’ve underestimated what it takes to get CI up and running for a brand new shop with zero experience.

  2. Davy Brion Says:

    again, installing Team City is so easy anyone can do it… you really don’t need to know anything about CI to get it working.

    CruiseControl… i’d skip that entirely because there are better alternatives these days

    as for the build file, take a look at the build script i linked to. it builds your project and it runs the tests in them… they wouldn’t necessarily have to figure that out either

    Seriously, it’s not hard, and it doesn’t take a lot of time

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>