Si vous avez déjà travaillé avec Gitlab, vous avez peut-être déjà eu l’occasion de jouer avec l’intégration continue (CI). Aujourd’hui, nous allons voir ce qu’est un Runner et comment le mettre en place.

Pourquoi s’en servir ?

L’intégration continue va permettre de lancer vos tests et vos builds directement sur le serveur via des pipelines. Les pipelines sont des groupes de jobs qui vont définir les scripts à exécuter sur le serveur.

Pour gérer vos pipelines, il faut mettre en place un GitLab Runner. Le GitLab Runner va gérer vos jobs et les lancer automatiquement quand une branche sera envoyée sur le dépôt ou lorsqu’elle sera mergée, par exemple. Vous pouvez également lancer les jobs à la main ou changer complètement la configuration.

Si vous utilisez Gitlab.com, plusieurs runners sont mis à votre disposition gratuitement, ce qui est super sympa. Vous pouvez alors lancer plusieurs pipelines en parallèles pour avoir les retours plus rapidement.

Ce sont des Shared Runners, ce qui veut dire qu’ils sont utilisés sur l’ensemble de vos projets, ce qui permet de limiter le nombre de runners à installer. Mais cela peut aussi poser problème, si vous avez beaucoup d’activité sur un projet. Les pipelines des autres projets seront alors en attente le temps que les Shared runners soient à nouveau disponibles.

En fonction de vos besoins, cela ne sera peut-être pas suffisant. Selon le nombre de projets que vous avez ou de l’activité que vous avez sur un projet, il vous faudra davantage de runners ou beaucoup de patience.

Si vous hébergez Gitlab vous-même, vous devrez définir vous-même un ou plusieurs runners pour vous servir de Gitlab CI.

On va pouvoir alors définir des Specific Runners qui seront disponibles uniquement pour un projet.

MBP-de-admin:~ admin$ gitlab-runner register
WARNING: Running in user-mode.                     
WARNING: Use sudo for system-mode:                 
WARNING: $ sudo gitlab-runner...                   

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.com/
Please enter the gitlab-ci token for this runner:
-rxa2xryGAPm9VwLY_kh
Please enter the gitlab-ci description for this runner:
[MBP-de-admin]: test-d
Please enter the gitlab-ci tags for this runner (comma separated):
test-d
Registering runner... succeeded                     runner=-rxa2xry
Please enter the executor: docker, ssh, kubernetes, docker-ssh, parallels, shell, virtualbox, docker+machine, docker-ssh+machine:
docker
Please enter the default Docker image (e.g. ruby:2.1):
nginx:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!