
TeamCity stand schon lange auf meiner Liste der Tools die ich unbedingt mal ausprobieren muss. Nun hat JetBrains TeamCity in der Version 3.0 herausgebracht. Eine der Neuerungen liegt im Lizenz-Modell, es gibt nun eine kostenlose Professional Version die auf 20 Benutzer und 20 Build-Konfigurationen beschränkt ist. Das reicht sicherlich in vielen Fällen. Und war ein Anreiz es endlich mal zu probieren.
Als leicht gefrusteter Anwender von CruiseControl.NET suchte ich schon länger nach einer alternative. Gefrustet aus dem Grund da die Konfiguration von CC.NET nicht wirklich trivial ist und man sich in dem XML Wust etwas verliert. Es gibt zwar kleine Tools die einem da helfen möchten, aber bei den komplexen Konfigurationen versagen diese (CI-Factory habe ich noch nicht probiert). Hey, wir leben im Jahr 2007 und ich will das mich der Computer soweit es geht unterstützt.
Gestern Abend mal eben TeamCity 3.0 installiert und sehr schnell zu einem Ergebnis gekommen.
Das ganze ist ein Java basierendes System welches mit Tomcat als WebServer ausgeliefert wird, eine Intergration in den IIS oder Apache ist wohl nicht vorgesehen somit muss man entweder einen anderen Port als 80 oder 443 verwenden sofern diese auf dem Server schon in Verwendung sind. Trotzdem ist eine .NET Unterstützung mit Board und man wohl auch Erweiterungen in .NET Entwickeln. Auch gibt es ein Visual Studio AddIn und ein Tool für das SystemTray.
Gefallen hat mir das man sehr viel über eine Web Oberfläche Konfigurieren kann und mit ein paar Mausklicks schon Ergebnisse hat die brauchbar sind. Aufrufen von NAnt oder MSBuild Scripts, bauen von Visual Studio Solutions und Projekten alles schnell und einfach eingerichtet. Das laufen lassen von Unit Test (mitgeliefert wird nur NUnit und VSTS) ist auch ein Eintrag (sofern man seine Test-Assemblies nett benennt) und fertig.
Auch sehr schön finde ich das man ein Personal Build machen kann, d.h. auf dem Build Server wir ein spezieller Build angestoßen mit den eigenen Änderungen und wenn alles durchgelaufen ist kann man dies dann richtig in SubVersion oder Team Foundation Server einchecken. Somit hat man eine erhöhte Sicherheit beim einchecken um lokale Abhänigkeiten z.B. auszuschließen.
Build-Agents lassen sich einfach auf mehrere Rechner installieren und ermöglichen so das Load Balancing umfangreicher Builds auf mehreren Servern. Bis zu Build-Agents sind in der kostenlosen Version möglich.
Dazu wird ein Visual Studio AddIn mitgliefert, welches dann auch das einchecken in Subversion übernimmt. Eine Integration ala VisualSVN wird einem damit jedoch nicht geboten.
Sehr schön ist auch dass man wenn eine Serververbindung mit Anmeldung einrichtet (SubVersion, EMail etc.) das man direkte Test-Möglichkeiten hat ob auch alles richtig eingetragen ist.
Missfallen hat mir das TeamCity 3.0 wohl nicht mit dem aktuellen NUnit 2.4.3 zurecht kommt, die Test laufen zwar alle durch trotzdem schlägt der Build fehlt da abhänigkeiten nicht aufgelöst wurden, ob dies an mir lag oder an TeamCity ist noch nicht geklärt. Ist halt nur ein First Look.
Natürlich wird man für aufwendigere Builds nicht um eigene Build-Skripte herumkommen, doch für das Brot und Butter CI hat man schon eine sehr schönen Einstieg worauf man sicherlich aufbauen kann.
Wird TC nun CC bei mir ablösen? Für dass eine oder Projekt sicher. Ich muss schauen wohin TC sich entwickelt und wie der PlugIn Situation sich dafür entwickelt. Die Enterprise Version die eine unlimitierte Anzahl von Benutzer und Build-Konfigurationen ermöglicht koste $ 1999 und jeder weitere Build Agent $ 299. Für Open Source Projekte gibt es eine kostenlose Enterprise Lizenz.
Einen Blick darauf werfen sollte man auf jeden Fall wenn einem CC.NET nicht zugesagt hat.
