Skip to content

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-runner installé

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.