J’ai installé la semaine passée TeamCity de JetBrains, le moteur d’intégration continue professionnel de JetBrains. Ce nouveau produit permet de faire de l’intégration continue de code Java ou .NET et de suivre via IDEA IntelliJ (l’éditeur) en temps réel si le code de votre produit compile ou non. Tout d’abord l’installation et la configuration de TeamCity se sont déroulés sans problèmes. Par rapport à CruiseControl, le produit est plus simple à installer et ensuite à configurer. Notre code étant sous SVN, j’ai réussi à configurer un projet qui récupere le code Java de SVN puis qui lance notre build Ant sans aucuns soucis. Il faut dire que j’avais déjà écrit des targets ANT spécifique pour CruiseControl afin de permettre à notre logiciel de compiler sans devoir configurer quoique ce soit.
TeamCity gére SVN, CVS, PerfForce et d’autres repository de code source. Au niveau de l’intégratio avec IDEA IntelliJ, un plugin permet de poster vers TeamCity son code et d’enchainer un commit si, et seulement si, le code compile sur TeamCity. C’est le principe de la compilation differée. Le cas d’usage: un vendredi soir vous terminez de corriger 3 fichiers importants. Vous aimeriez partir en week-end l’esprit tranquille et ne pas casser la compilation de votre logiciel. Grâce à Teamcity vous pouvez alors pré-commiter vos fichiers vers TeamCity. Celui-ci va alors lancer la compilation et si celle-ci passe, enverra vers SVN vos 3 fichiers. Si par contre vos modifications venaient à casser la build ou à ne pas etre compatible avec d’autres mise à jour, alors le serveur mettra de coté votre commit.
TeamCity est administré via une interface Web déployée sur Tomcat. La licence coûte 249 USD. Cela ne me semble vraiment pas cher. En effet, pour faire tourner CruiseControl correctement il vous faudra pas mal de tests, et prendre le temps de comprendre la configuration de CC via le fichier config.xml. D’un autre coté, TeamCity propose une interface Web très claire et simple qui vous fera gagner du temps.
Les ressources:
- Le site de JetBrains TeamCity http://www.jetbrains.com/teamcity/
- Features et Screenshots http://www.jetbrains.com/teamcity/features/index.html