Continuous Integration met Teamcity
Ons project had een Cruisecontrol installatie voor de automatische builds en deployments. Werkte op zich prima, maar het was elke keer weer uitzoeken hoe je het moest configureren. Teamcity leek een goed alternatief, zeker omdat het vrij te gebruiken is tot 20 gebruikers.
Het belangrijkste verschil tussen Cruisecontrol en Teamcity is het gebruik van build agents. Met cruisecontrol draait het buildproces op dezelfde machine als cruisecontrol zelf. Met Teamcity kan de build ook op andere machines draaien die je speciaal voor dit doel kunt inrichten. Dit is vooral handig als je een multi tier applicatie hebt met verschillende builds elk met specifieke eisen, bijvoorbeeld een Unix of juist een Windows omgeving. Teamcity kan detecteren of een build agent aan de eisen van de build configuratie voldoet en deze dan wel of niet gebruiken.
Als je een pool van buildagents gebruikt, hoef je ook niet te wachten tot een vorige build klaar is en kun je eerder feedback krijgen.
Builds zijn eenvoudig te configureren via de webinterface. Ik heb hier gemengde gevoelens bij, omdat ik bij builds automatisch aan scripts denk. Mijn ervaring met GUI's is dat ze moeilijker repeatable zijn te maken. Toch valt dit wel mee met Teamcity doordat je configuraties en delen van configuraties kunt hergebruiken. In wezen moet je 4 dingen configureren:- de code repository
- het build script
- de rapportages
- de agents
En daarna kun je als gebruiker per project je notifications configureren. Je kunt per e-mail op de hoogte gehouden worden, via een plugin in Eclipse of Intellij of een systray icon. Je kunt zien welke testen draaien en je hoeft niet te wachten tot de build klaar is, wat zeker bij lange builds wel handig is.
Ik gebruik het bij de klant intussen al een jaartje in combinatie met maven en de combinatie bevalt me wel. Voor mijn eigen projecten wacht ik nog even op Git support.

Ik gebruik nu Hudson voor mijn project, in combinatie met Maven, en een aantal plugins waardoor ik heel veel van het build proces heb kunnen automatiseren. Hudson biedt ook de mogelijkheid voor build agents. Werkt erg fijn, een aanrader! Ook al ervaring mee?
Nee, heb nog geen ervaring met Hudson, maar ziet er wel interessant uit. Een optie die ik in de gaten hou voor het geval ik niet meer gratis gebruik kan maken van Teamcity.
Of misschien dat ik er wel nu serieus naar ga kijken, alleen al omdat het niet lijkt op Teamcenter, T-Systems of Team Foundation server :). Hebben we minder spraakverwarring op deze klus.
See github for git teamcity plugin.