I've been goofing around with TeamCity over the last week. After reading some posts about TeamCity (1)(2), I decided to give it a try. In my continuous quest to eliminate the amount of XML programming in my life, I decided to replace my current CruiseControl.NET setup for my home project with TeamCity.
I couldn't believe how easy it was. I installed the server and got my first project up-and-running in about 15 minutes. At first, I was in complete denial. I must have done something wrong here. Then it hit me. This is how its supposed to be. TeamCity is what TFS and CC.NET should be like when they grow up. Don't take my word for it, take a look for yourself:
Sweet statistics huh? Setting up a new build is really simple.
Not everything is sunshine and happiness though. The shortcomings I encountered up till now are:
- No out-of-the-box support for NUnit 2.4. I hope that the brilliant people at JetBrains put out an update soon.
- No support for code coverage whatsoever (at least, I couldn't find it in the docs or on the web). Bummer.
Opposed to these shortcomings, there is a quite an impressive feature list for both Java and .NET:
I still have to take a look at the Duplicates Finder as it looks great too.
Now here comes the good news. You can download the professional edition for free! You can create 20 build configurations and make use of three different build agents which should be more than enough for small teams.
After becoming a real Resharper addict (can't use Visual Studio without it), I'm now becoming a slave to TeamCity as well. I've converted all my home projects, and life has never been better. Till next time.
9 comments:
Care to post a quick overview of the setup process for adding a .Net project?
We have been using CC.net as well but my attempt to get TeamCity working is not as successful as yours. I got it to connect and build my project, but unfortunatley my website files are not being replaced after a successful build like it used to with CruiseControl.Net.
Then again I wasn't the guy who setup CC.Net and really know enough to copy and modify existing XML config to add/update projects so a chance of me making a stupid mistake are very high.
I'll be checking your blog daily, thanks!
Hi,
Do you want to know how to deploy your web application after a CI build? If so, then you should do this in your MsBuild script. TeamCity is not going to help in order to deploy your app. After the build, the binaries remain in your build folder. For a web app, you should publish the binaries.
TeamCity does provide the ability to include artifacts with your build. You can use an expression in order to pickup all the binaries/files that you want, and TeamCity includes these for every build.
Hi,
Thanks for a quick reply, you've hit it right on the nose, it builds the project fine but the binaries stay in the build folder of TC.
Does that mean that unless I filter items during the checkout I will get my entire project into TeamCity? Reason I ask is I have PDFs, images, and A/V assets under source control as well amounting to about gig and a half.
I'm using NAnt script instead of MSBuild, but get the gist of what you're saying that it's not TC's job to push the binaries after a build. Are there benefits of using MSBuild over NAnt?
Thanks again for your blog posts, very interesting and right up my alley.
I would copy all the necessary files to a drop location (possibly a file share on your build server) or directly to your test/acceptance server. At work, we do this all the time. We incorporate a seperate task in out MsBuild script for copying the necessary files. I'm sure that NAnt contrib contains plenty of tasks that you can use for automatically setting up all kinds infrastructure stuff on your test machine (like IIS, etc.). I also remember a tool on my TODO list that is called Unleash It! and there is also the recently announced MsDeploy. These are specifically targeted towards web application deployment, but I still need to play around with them.
If your currently using NAnt and it works for you, then please, stay with NAnt. MsBuild doesn't offer any added value, on the contrary. I don't know about you, but I'm not that keen on XML programming. If you are looking for something better than NAnt/MsBuild, then maybe Bake/Rake or FinalBuilder/VisualBuild adds more value. There was a discussion on ALT.NET a while ago if your interested.
Jan Van,
Thanks for your suggestions I will try to digest all of it and apply to my situation, I'm especially excited about the new tools you mentioned as alternative to NAnt/MSBuild. Not too keen on XML programming my self ;)
If I get somewhere exciting I'll be sure to post a comment back on this blog. Please keep the articles coming, I'm a fan now.
-Paul
Thank you very much for your kind words. I appreciate it.
Hi,
Thanks for a quick reply, you've hit it right on the nose, it builds the project fine but the binaries stay in the build folder of TC.
Does that mean that unless I filter items during the checkout I will get my entire project into TeamCity? Reason I ask is I have PDFs, images, and A/V assets under source control as well amounting to about gig and a half.
I'm using NAnt script instead of MSBuild, but get the gist of what you're saying that it's not TC's job to push the binaries after a build. Are there benefits of using MSBuild over NAnt?
Thanks again for your blog posts, very interesting and right up my alley.
Hi,
Do you want to know how to deploy your web application after a CI build? If so, then you should do this in your MsBuild script. TeamCity is not going to help in order to deploy your app. After the build, the binaries remain in your build folder. For a web app, you should publish the binaries.
TeamCity does provide the ability to include artifacts with your build. You can use an expression in order to pickup all the binaries/files that you want, and TeamCity includes these for every build.
Post a Comment