Débuter avec Travis-CI, la plateforme d’intégration continue

Si vous visitez régulièrement des projets sur GitHub, vous avez certainement déjà vu des badges dans le README comme « build passing ».

Il s’agit d’un service proposé par Travis-CI qui exécute des tâches au moment où vous le souhaitez. Ces tâches sont (très ?) souvent des tests (unitaires). Je ne vais pas revenir sur la nécessité de proposer des tests pour son projet.

Pour faire simple, vous pouvez paramétrer Travis-CI pour qu’à chaque push, il exécute vos tests et vous indique si votre build (plusieurs « jobs ») s’est bien déroulé ou non. Cela permet à chaque modification du projet, de s’assurer que tout fonctionne correctement. Cela s’appelle l’intégration continue.

Travis-CI est gratuit pour les projets publics hébergés sur GitHub.

Lier son projet GitHub avec Travis-CI

Tout d’abord, s’authentifier sur Travis-CI avec son compte GitHub « Sign in with GitHub ». Et se rendre sur « Account », il va afficher la liste de vos projets publics, il n’y aura qu’à activer ceux que vous voulez lier à Travis-CI.

A côté du bouton « ON/OFF » de votre projet, cliquer sur la clé pour paramétrer quand exécuter un build. Il y a 3 choix :

  • A chaque commit du ficher .travis.yml (on verra après ce que c’est)
  • A chaque push
  • A chaque pull request

Personnellement, seuls les 2 derniers sont cochés.

Il faut ensuite aller dans les paramètres de votre projet GitHub : https://github.com/username/project/settings/hooks, cliquer sur « Configure services » et cliquer sur « Travis« .

Indiquer votre nom d’utilisateur ainsi que votre token (récupérable depuis https://travis-ci.org/profile/username/profile). Reste plus qu’à valider les changements avec « Update settings« .

Travis-CI et votre projet GitHub sont maintenant liés. Il reste à paramétrer vos tests pour indiquer à Travis-CI ce qu’il doit faire comme build.

Paramétrer ses tests

Je vais montrer l’exemple de ma librairie PHP cURL qui propose des tests avec PHPUnit.

Il faut obligatoirement un fichier de configuration .travis.yml à la racine du projet.

Voici le mien au moment où j’écris cet article :

language: php

php:
    - 5.4
    - 5.5
    - 5.6
    - hhvm

matrix:
    allow_failures:
        - php: hhvm

before_script:
    - composer self-update
    - composer install

script:
    - phpunit

notifications:
    email: false

Il faut impérativement indiquer le langage de test, ici PHP. J’indique sur quelles versions de PHP je veux lancer mes tests. Mon « build » comportera donc 4 « jobs ». Si vous utilisez un autre langage, vous reporter au lien figurant en bas de l’article.

Optionnellement, les commandes à effectuer avant de lancer le test. Ici je mets à jour Composer puis j’installe mes dépendances (seul PHPUnit en fait partie). La commande pour lancer les tests est phpunit.

C’est un fichier simple, on peut faire beaucoup plus ! Bien sûr, s’assurer en local que tout fonctionne, puis on peut push ce fichier (obligatoire pour lancer le premier build). Vous pouvez ensuite retourner sur Travis-CI pour voir l’avancée du build, il sera en queue (orange) dans l’attente qu’une machine se libère. Puis passera en vert (OK) ou rouge (KO).

Pour voir à quoi cela ressemble : https://travis-ci.org/sylouuu/php-curl

Vous pouvez ensuite ajouter le badge à votre README pour indiquer le statut du dernier build exécuté.

[![Build Status](https://travis-ci.org/username/project.png)](https://travis-ci.org/username/project)

Vous pouvez consulter cet article sur le même sujet.

Vous aimerez aussi...