{{tag>gitlab dev runner test todo}}
====== GitLab: Gestion des runners ======
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.
===== Installation =====
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:
* Admin Area > Overview > Runners
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
===== Références =====
* https://docs.gitlab.com/
* https://docs.gitlab.com/runner/install/
* https://docs.gitlab.com/ee/ci/introduction/index.html
* https://docs.gitlab.com/runner/install/linux-manually.html