GitLab est une application qui englobe tout un tas d'outils liés à la gestion d'un projet en une seule interface :
- Tchat (à la slack)
- Gestion du versioning (création de dépôt Git)
- Gestion des problèmes (issues et Kanban board)
- Système d'intégration continue et de déploiement (via GitLab runner)
GitLab est disponible en 3 versions
- GitLab.com, qui offre un nombre illimité de dépôt et collaborateur, directement hébergé sur GitLab.com
- Community Edition, est une version open source que vous pouvez installer sur votre propre serveur.
- Enterprise Edition, étend les fonctionnalités de la version community (cf gros tableau de comparaison)
Intégration continue
Dans ce tutoriel, nous allons nous concentrer sur la partie intégration continue qui va permettre de tester la "santé" de notre code à chaque commit. Pour configurer l'intégration continue il faut commencer par créer un fichier .gitlab-ci.yml
qui va lister les différentes tâches à effectuer.
Par exemple pour tester mon application Laravel :
image: grafikart/gitlab-ci:php7
cache:
paths:
- vendor/
before_script:
- composer install
services:
- mysql
variables:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: root
test:php7:
script:
- composer test
test:php56:
image: grafikart/gitlab-ci:php56
script:
- composer test
- image, permet d'utiliser une image docker pour configurer l'environnement à utiliser
- cache, permet de mettre en cache un dossier en chaque éxécution
- before_script, permet de lancer une série de commandes à éxécuter pour "préparer" notre environnement
- services, permet de cabler d'autres container à notre container principal (ici nous utilisons l'image MySQL standard)
- variables, définit les variables d'environnement
Les autres clefs permettent de définir des tâches à effectuer, le code de retour permet d'indiquer à GitLab le succès ou non de la tâche en question. Si GitLab détecte un fichier .gitlab-ci.yml
il va automatiquement essayer de lancer les tâches à l'aide des runners configurés dans l'application.