Builder avec bash dans TeamCity

Dans un précédent article, j’avais montré qu’il était très simple de faire de l’intégration continue avec git, Maven et TeamCity. Depuis quelques temps, j’avais envie d’essayer de faire un build à l’aide de bash et de mettre en place la même mécanique de build automatique à chaque commit dans git. Hier soir, j’ai essayé.

Build avec bash

J’ai commencé par créer un nouveau dépôt git avec un simple ‘hello world’ en C. Il contient un fichier source, un fichier README expliquant comment compiler et exécuter le programme, ainsi qu’un script bash permettant de builder. Je l’ai fait simpliste pour l’exemple, le build se limite à créer une archive tar horodatée contenant le source et le README, et à déposer cette archive dans un « dépôt » :

$ cat build.bash
tar cvf $HOME/Documents/repository-c/hello-world-c$(date +%F--%H%M%S).tar main.c README.txt

Simple, j’ai dit…

Intégration continue

J’ai ensuite lancé TeamCity, j’ai ouvert l’interface web et dans la partie « Administration »,  j’ai sélectionné « Project » dans le menu de gauche puis j’ai cliqué sur le bouton « Create project » (la procédure est semblable à celle donnée dans mon précédent article) :

maven bash 1 create project

J’ai ensuite créer la « Build configuration » pour lui indiquer le dépôt git où trouver les sources. Je suis allé dans « Build steps » et j’ai tenté de faire « Auto-detect »…. sans succès ! Ce n’était pas très étonnant et j’ai donc ajouté manuellement les étapes du build. Voici comment je lui ai demandé d’exécuter mon script bash :

maven bash 2 build step

Pour terminer l’aspect intégration continue, j’ai rajouté un trigger de type « VCS Trigger (encore une fois, je vous renvoie à mon premier article pour le mode opératoire).

Test de la mécanique

Tout était en place, il ne restait plus qu’à lancer un test grandeur nature (attention, on va générer un tar avec 2 fichiers dedans, c’est très grand !). J’ai fait un petit changement dans mon fichier README.txt et j’ai commité. Hop, un build automatique était lancé par TeamCity !

maven bash 3 build result

J’ai regardé dans mon « dépôt », j’y ai trouvé mon archive, elle contenait bien le README modifié !

$ ls -lrt
 total 80
 -rw-rw-r-- 1 pgradot pgradot 20480 févr. 10 21:30 hello-world-c.tar
 -rw-rw-r-- 1 pgradot pgradot 20480 févr. 10 21:34 hello-world-c2016-02-10--213441.tar
 -rw-rw-r-- 1 pgradot pgradot 20480 févr. 10 21:35 hello-world-c2016-02-10--213511.tar
 -rw-rw-r-- 1 pgradot pgradot 20480 févr. 10 21:50 hello-world-c2016-02-10--215034.tar

C’est tout 🙂

C’était très simple mais cela ouvre la porte a des builds complètement personnalisés. Il semble même possible d’écrire le script directement dans l’interface de TeamCity.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s