Comme j'utilise github comme dépôt public pour London Epidemic, autant utiliser les outils disponibles qui vont bien avec. Je vais donc vous parler de Travis CI une plateforme d'intégration continue pour les dépôts publics de GitHub.

Intégration continue ?

L'intégration continue est une pratique souvent liée aux méthodologies agiles, mais qui n'en découle pas. Ce serait plutôt les prémisses à mon humble avis.

L'intégration continue consiste à vérifier à chaque commit que le code source fonctionne. Pour cela, les techniques de tests unitaires ou de tests d'intégration automatisées doivent être mises en place dans le projet et les outils d'intégration continue vont exécuter ces tests à chaque fois que le gestionnaire de source (exemple : git) sera mis à jour.

Généralement des rapports ou des alertes sont remontés lorsque les tests échouent, permettant une remontée immédiate dès qu'un soucis est rencontré.

Travis CI

Même si Jenkins est reconnu et très souvent utilisé en tant que gestionnaire d'intégration continue, Travis permet la compilation et les tests sans devoir installer une plateforme sur un serveur. En effet, Travis se présente sous la forme d'un service web où l'on s'inscrit avec l'authentification de github, on sélectionne les dépôts que l'on veut qu'il scrute, et l'on configure chaque projet avec un petit fichier .travis.yml à la racine de notre projet. Ce fichier permet d'expliquer à Travis comment s'occuper de notre projet.

Configuration Travis et Grails

Dans le cas dont je me soucie ici, c'est de pouvoir compiler et tester une application grails (London Epidemic en l'occurence). Comme Travis n'est pas spécialisé (il peut gérer toute sorte de projet ou presque), il faut configurer la plateforme avant chaque build pour qu'il connaisse grails et la façon dont on lance les tests.

Sans plus de chichis, voici mon fichier :

language: java

jdk:
  - openjdk7
  - oraclejdk7

before_install:
 - sudo add-apt-repository -y ppa:groovy-dev/grails
 - sudo apt-get update
 - sudo apt-get -y install grails-ppa
 - sudo apt-get install grails-2.1.0 # or the grails version.

script: grails test-app

Grâce à ce fichier, Travis va tester avec deux versions de la jdk différentes (lignes 3 à 5), installer grails à la version 2.1.0 (lignes 7 à 11) et lancer les tests (ligne 13).

Sources

Merci à Bernado ( @berngp ) pour son aide à la mise en place du fichier de conf.