Runners et publication¶
Les runners¶
Ce sont eux qui exécutent les jobs. Deux types:
- partagés: fournis par gl, tournent dans un conteneur docker (c'est là qu'
image:compte) - spécifiques au projet: une machine à moi, avec
gitlab-runnerinstallé
Pour choisir lequel exécute un job, on utilise tags:. Le job ne sera pris que par un runner qui a ce tag:
build:
stage: build
tags:
- self-hosted
script:
- npm run build
Warning
Un job avec un tag que aucun runner n'a reste bloqué en "pending" pour toujours. Et inversement, un job sans tag ne sera pas pris par un runner configuré pour ne prendre que les jobs taggés..
Créer un runner local¶
Sur une VM ubuntu ou debian:
# installer gitlab-runner
sudo apt install gitlab-runner
# l'enregistrer sur le projet avec le token donné par gl
gitlab-runner register --url https://git.s2.rpn.ch --token <token>
# le lancer
gitlab-runner run
Le token vient de Settings > CI/CD > Runners du projet, quand on crée un nouveau runner.
À l'évaluation
Le runner disponible est un exécuteur shell (Bash sous Linux) avec le tag shell. git et curl sont déjà installés. Donc: tags: [shell] obligatoire dans les jobs (ou default: tags:), et image: ne sert à rien.