GitLab Runner est un projet open source permettant d'effectuer des taches et de retourner le résultat à GitLab. Utilisé avec GitLab CI, cet outil permet de faire de l'intégration continue. L'image ci-dessous explique le fonctionnement de GitLab et de GitLab Runner.

Dès que vous "pushez" votre code sur GitLab, ce dernier déclenche un Runner qui va effectuer la tâche demandée. Cette tâche peut-être d'installer les dépendances avec npm install, composer install... Le runner peut effectuer des tests unitaires par exemple avec phpunit. Vous pouvez également build votre app apec webpack, gulp... Bref, vous pouvez tout automatiser pour envoyer votre nouvelle version en dev/prod en une seule action : git push.
Dans cet article, nous allons voir comment installer un Runner avec Docker puis le lier à GitLab. Puis nous verrons comment créer nos premiers jobs (tâches) et exécuter notre premier pipeline (succession d’exécution de jobs).
Pour commencer les pré-requis sont d'avoir un container GitLab CE déjà installer. Si ce n'est pas fait je vous invite à suivre cet article : Installer GitLab avec Docker.
Installation du runner GitLab
Pour commencer rendez-vous sur votre interface GitLab. Dans votre projet allez dans Settings > CI / CD > Runners Settings > Expand.
C'est ici que vont s'afficher tous vos runners. Cherchez :

Gardez ces infos à disposition (url et token).
On retourne sur notre machine et on démarre la configuration du Runner :
docker exec -i -t gitlab-runner gitlab-runner register
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://gitlab.domaine.com/
Please enter the gitlab-ci token for this runner:
CLESECRETE
Please enter the gitlab-ci description for this runner:
[b1c3ced2d9c2]:
Please enter the gitlab-ci tags for this runner (comma separated):
Registering runner... succeeded runner=eiez6Mub
Please enter the executor: virtualbox, kubernetes, parallels, shell, ssh, docker+machine, docker-ssh+machine, docker, docker-ssh:
docker
Please enter the default Docker image (e.g. ruby:2.1):
alpine:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
La description et les tags ne sont pas obligatoires. Si c'est votre première fois ne spécifiez pas de tags.
Si tout s'est bien passé, retournez sur votre interface GitLab et dans Runners settings (en bas) deverai apparaitre votre Runner :

Création du fichier .gitlab-ci.yml
Votre dépôt gitlab est créé, vous avez cloner celui-ci, vous pouvez maintenant créer votre configuration.
Le fichier .gitlab-ci.yml
est l'endroit ou vous allez configurer votre processus d'intégration continue. Il se place à la racine de votre projet. A chaque push, GitLab va regarder dans ce fichier et lancer les tâches dans le Runner précédemment créer.
Je vous invite à créer ce fichier à la racine de votre projet et coller le contenu suivant :
test:
script:
- echo "Tests en cours"
build:
script:
- echo "Build en cours"
deploy:
script:
- echo "Déploiement de l'application"
Cette configuration créée 3 jobs : test, build et deploy. Ces jobs (=tâches) ne font rien à part écrire du texte. Plus tard vous pourrez mettre toutes vos commandes comme apt install, npm install, phpunit, gulp ... On commit
puis push
le fichier :
git add .gitlab-ci.yml
git commit -m "Add .gitlab-ci.yml"
git push origin master
Sur votre interface GitLab allez dans CI / CD et admirez le succès (ou l'échec) de votre tâche

Si vous cliquez sur le job, vous deverez voir le "echo..."

Félicitation, vous avez mis en place votre processus d'intégration continue ! Je vous invite à configurer votre fichier .gitlab-ci.yml
pour qu'il réponde à vos besoins...
Merci d'avoir suivi cet article jusqu'au bout ! ❤️