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.
** UPDATE: October 2011 **
The information in the remainder of this post is mostly obsolete. To get set up on the TeamCity server, complete this form.
** END UPDATE **
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 (i.e. one that will fit in a tweet along with the project name and a shortened URL) 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