Les runners sont utilisés par gitlab pour automatiser les tests. Lorsque un commit est reçu, si un runner est associé au projet et qu'un fichier de configuration .gitlab-ci.yml existe les instructions déclarées dans le fichier sont exécutées. Un résultat sans erreur permet de valider le code envoyé sur le dépôt.
On peut créer et associer des runners sur un projet particulier ou les mutualiser, ils sont alors disponibles pour exécuter les tests d'intégration continue pour les projets hébergés par l'instance GitLab.
Sous une distribution GNU/Linux, le plus simple est de télécharger le binaire
# Depuis un shell root, télécharger le binaire curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64" # Positionner les droits d'exécution chmod +x /usr/local/bin/gitlab-runner # Créer un utilisateur local gitlab-runner useradd --comment 'GitLab Runner' --uid 9999 --create-home gitlab-runner --shell /bin/bash # Si Docker est installé et que l'on souhaite pouvoir l'utiliser dans les tests via # l'executeur de type shell, ajouter l'utilisateur gitlab-runner dans le groupe docker usermod --append -G docker gitlab-runner # Installer comme service et démarrer gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner gitlab-runner start # equivalent systemctl start gitlab-runner.service # Vérifier l'état du service systemclt status gitlab-runner.service
La création d'un runner mutualisé se fait via l'interface d'administration:
Comme l'instance gitlab s’exécute dans un conteneur Docker, on fait le choix ici d'utiliser un conteneur également pour le runner.
On modifie le docker-compose et on ajoute un service 'gitlab-runner'.
Après création et exécution du service, il faut enregistrer le runner auprès de l'instance gitlab.
Depuis
docker container run -it --rm --name gitlab_registration -v /srv/gitlab/gitlab-runner/config/:/etc/gitlab-runner gitlab/gitlab-runner:v14.6.0 register