• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 29/05/2019

TP : mettre en place un outil d'intégration continue, Travis

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Comme je vous le disais dans le chapitre précédent, il existe bon nombre d'outils d'intégration continue. Je vous propose de mettre en place Travis CI pour l'un de vos projet Github. Vous allez voir qu'en quelques clics et un peu de configuration, vous aurez un environnement d'intégration fonctionnel sans trop d'efforts.

Travis CI est un outil d'intégration continue qui permet de lancer facilement les tests de votre application et déployer celle-ci.

Cet outil est très facile à utiliser : en effet, dans le cas où vous poussez votre code sur Github, l'intégration avec Travis CI est facilitée.

Première étape : Avoir un projet avec des tests sur Github

Durant la première partie de ce cours, nous avons implémenté des tests unitaires dans un projet Symfony. Je vous propose de pousser ce projet sur Github.

Je vous invite à récupérer le projet complet avec les tests ici : Télécharger le projet.

Rendez-vous sur Github pour créer un nouveau repository vide (donnez le nom qu'il vous plaira) :

Créer un nouveau repository sur Github.com
Créer un nouveau repository sur Github.com

Récupérez l'adresse de votre repository :

Récupérer le l'adresse du nouveau repository
Récupérer l'adresse du nouveau repository

Dézippez le projet que vous avez téléchargé dans un dossier que vous serez en mesure de retrouver. Ouvrez votre outil de ligne de commandes préféré, et placez-vous à la racine du projet.

Tapez la ligne de commande suivante :

$ git init

Cette ligne de commande a pour effet d'initialiser votre répertoire avec git. Cela signifie concrètement que maintenant vous êtes en mesure d'effectuer des changement trackés par git !

Un dossier .git vient d'être créé.

Initialisation du répertoire avec git
Initialisation du répertoire avec git

Commencez par indiquer quel est le remote (repository centralisé). Normalement, vous avez toujours l'adresse de votre repository Github dans votre presse-papier (si ce n'est pas le cas, allez à nouveau le récupérer).

Dans votre outil de ligne de commande, tapez la commande suivante :

$ git remote add origin [l'adresse de votre repository]

Remplacez  [l'adresse de votre repository] par ce que vous avez dans votre presse-papier (Ctrl + V ou Cmd + V).

Ajout du remote
Ajout du remote

Puis tapez les commandes suivantes :

$ git add . && git commit -m'Initial commit' && git push origin master

Vous devrez avoir ce type de sortie :

Commit et push sur le repository distant Github
Commit et push sur le repository distant Github

Rendez-vous sur votre repository sur github.com, et rafraîchissez la page. Vous devriez voir l'ensemble de votre projet avec tous les dossiers et les fichiers.

Repository Github mis à jour
Repository Github mis à jour

Si tout s'est bien passé, nous pouvons passer à l'étape suivante.

Deuxième étape : activer Travis CI pour notre projet Github

Rendez-vous sur http://travis-ci.com. Il vous faut vous authentifier avec Github avant de commencer.

Vous devez être redirigé vers la page d'accueil de votre profil :

Page
Page "Getting started" de Travis CI

Cliquez sur la petite icône "+" pour accéder à la liste des repository Github de votre compte.

Vous devriez voir votre repository nouvellement créé. Juste à côté, il y a un petit interrupteur : cliquez dessus pour indiquer à Travis que vous souhaitez activer l'intégration continue :

Liste des repositories Github
Liste des repositories Github

Vous devriez alors obtenir le résultat suivant :

Repository Github désormais activé pour intégration continue
Repository Github désormais activé pour intégration continue

Parfait ! Nous pouvons passer à la troisième étape : lancer votre premier build.

Troisième étape : Lancer un build

Configuration

Cliquez sur le nom du repository. Vous allez être redirigé vers la page Travis dédiée aux builds pour le repository en question :

Page dédiée aux builds d'un reposotory
Page dédiée aux builds d'un reposotory

Afin qu'il soit possible de lancer un build, il faut ajouter un fichier de configuration compréhensible par Travis. C'est dans ce fichier que vous indiquerez toute la configuration nécessaire à Travis pour qu'il soit en mesure de lancer les tests automatiquement.

Créez un fichier .travis.yml avec a minima la configuration suivante :

language: php
php:
  - '7.0'
  - '7.1'

script:
   - composer install
   - vendor/bin/phpunit

Nous indiquons ici que nous avons besoin de deux environnements (l'un contenant PHP 7.0 et l'autre contenant PHP 7.1) et que Travis lance les lignes de commandes suivantes :

$ composer install
$ vendor/bin/phpunit

Il ne nous reste plus qu'à commiter le fichier puis le pusher sur le repository Github distant.

Un build est lancé automatiquement :

Build lancé après push
Build lancé après push

Une fois le build terminé, voici le résultat que vous devriez obtenir :

Build réussit
Build réussi

Lancer un build manuellement

Vous êtes désormais en mesure de lancer un build manuellement grâce au bouton "Restart build" en haut à droite  :

Bouton pour lancer un build manuellement
Bouton pour lancer un build manuellement

Notez qu'il n'y a pas de nouveau build créé.

Build lancé à chaque pull request

Par défaut, Travis se charge de lancer un build à chaque nouvelle pull request. Il suffit simplement de cliquer sur l'onglet "Pull requests".

Liste des pull requests depuis Travis
Liste des pull requests depuis Travis

Le résultat du build est visible directement sur la page de la pull request sur Github :

Résultat du build visible directement sur la page de la pull request
Résultat du build visible directement sur la page de la pull request

Vous pouvez aller plus loin avec vos builds ! Je vous invite à lire la documentation officielle pour découvrir ce qu'il est possible de faire.

Vous êtes désormais en mesure de mettre en place une intégration continue très rapidement, et sur tous vos projets, alors ne vous en privez pas ! ^^

Exemple de certificat de réussite
Exemple de certificat de réussite