CodeBetter CI Server update, or “How to plead your case”

A couple of months ago, I threw up a little PSA for people wanting to make project requests for http://teamcity.codebetter.com. I’m going to expand on it a little here in response to the most common errors and omissions I see.

Firstly, here is an updated list of what we need in order to set up a project:

  • Your username on the TeamCity server
  • The usernames of any other people you’d like to be administrators of the build
  • The name of the project
  • A *brief* description
  • The project’s URL
  • The URL to the source code
  • The name of the build runner (e.g. NAnt, Rake, MSBuild, command line, etc.)
  • The path to the build file (relative to the source code URL above)
  • Any other details required by the build runner (e.g. the name of the target if different from the default)

The general rule of thumb that summarizes all this is: assume I know nothing of your project. Furthermore, assume I have approximately three minutes available to devote to setting it up. The less guessing I need to do about how it’s built, the faster it’ll get up and running. (Unless it’s hosted on Google Code and has a NAnt file named build.xml at the root. I know SVN ain’t the new hotness anymore and XML files rank just below living next to a convicted felon with bad taste in lawn gnomes but MAN, those projects are easy to whip up.)

Next: test your build process. By my estimate, at least 80% of the projects I set up fail the first time I click Run. Almost all of them because they are assuming something is on the build server that isn’t. If you’re using something other than the standard BCL, chances are we haven’t installed it. So you’ll need to include it in your source code and reference it there.

If there’s something you need installed in order to make the actual build process run (e.g. a Rake gem or NCover), then include those with your request. While the build server is relatively free from client libraries, we do have various gems, Mercurial, and Git installed. But things like ASP.NET MVC aren’t necessary. We don’t want the hassle of dealing with different versions as they get released.

If at all possible, find a clean machine that just has the .NET SDK on it, download your code, and run your build process. If it fails there, it’ll likely fail on the TeamCity server. If it does, my debug process consists solely of reading the build log. That’s only to make my response to your request more personal and to make me sound like I know what I’m talking about.

Couple of housekeeping notes:

  • .NET 4.0 RC will be installed shortly. Probably within the next week
  • TeamCity 5.0 upgrade is on the radar but not a high priority as we don’t have an immediate need for it.
  • We have a Twitter account: @CodeBetterCI. Follow to be notified of outages and announcements.

Closing note: I double dog-DARE you to submit a request that uses CodePlex’s new Mercurial support.

Kyle the Volatile

  • Rob Thijssen

    I’ve written a small app that monitors TC config folders and pushes changes to git. I wonder if teamcity.codebetter.com would benefit from using this tool to sync config to github so that project maintainers get some more visibility on changes to their build configs? I also requested hosting for the app itself: http://github.com/grenade/teamcity-config-monitor.