Pourquoi je suis passé à Travis CI

J’avais écrit un article sur Magnum CI et je trouvais ce projet vraiment bien. Mais le problème, c’est que depuis un moment le service s’est dégradé : les serveurs tombent en rade et je n’ai plus de réponses aux demandes de support (le service est fermé depuis).

J’ai refait plusieurs fois mes projets pour qu’ils utilisent le meilleur de la plateforme, mais la dernière fois j’ai laissé tombé : je suis passé à Travis CI !

Mais Travis CI ne fonctionne qu’avec Github (snif), qu’à cela ne tienne je l’utiliserai avec Bitbucket ;)

Mise en place

Bitbucket vers Github

On va utiliser la fonctionnalité « miroir » de Git, pour créer et mettre à jour un dépôt sur Github depuis Bitbucket :

user@ubuntu:~$
# create mirror from Bitbucket.org
git clone --mirror https://bitbucket.org/<user>/<repository>.git
cd <repository>.git
 
# set remote push to Github.com
git remote set-url --push origin git@github.com:<user>/<repository>.git
 
# mirror Bitbucket.org to Github.com
git fetch --prune origin && git push --mirror

Pour mettre à jour le dépôt, il suffit de relancer la commande surlignée. Vous pouvez donc aisément laisser tourner un script sur votre machine Ubuntu, afin d’avoir des mise à jours en temps réel.

On peut aussi imaginer mettre un Webhook sur Bitbucket qui indique à votre machine qu’une mise à jour doit avoir lieu ;)

Instructions à lancer

Le gros avantage de Travis CI, c’est de pouvoir tester son code sur plusieurs versions de PHP et ça c’est vraiment royal ! On peut réellement maitriser les tests unitaires de son projet.

Voici un exemple de configuration pour le projet Fresh Symfony :

# .travis.yml
language: php
 
php:
    - 5.4
    - 5.5
    - 5.6
 
branches:
    only:
        - master
        - develop
        - release/2.3_LTS
 
env:
    global:
        - COMPOSER_CACHE_DIR=.composer-cache/
 
script: sh phing.sh phpunit.run

Prenez le temps de lire la documentation officielle qui est très bien faite, ainsi que les spécificités par langage, par exemple pour PHP.

Résultat

On obtient une validation des tests unitaires sur l’ensemble des versions de PHP souhaitées, avec également une vue détaillée des autres branches du dépôt Git sélectionnées.

Laisser un commentaire