Aller au contenu

TP7 – Comprendre les tags de runner (cibler les machines d’exécution)

Objectifs

Prérequis

Étape 1 — Créer deux runners avec des tags différents

Machine Tags Executor
Windows windows,shell shell
Mac mac,shell shell

Étape 2 — Créer un .gitlab-ci.yml de test

stages: [info]

job-windows:
  stage: info
  tags: [windows, shell]
  script:
    - echo "Runner Windows détecté"
    - ver || uname -a

job-mac:
  stage: info
  tags: [mac, shell]
  script:
    - echo "Runner Mac détecté"
    - sw_vers || uname -a

job-partage:
  stage: info
  script:
    - echo "Ce job s’exécute sur n’importe quel runner disponible"

Étape 3 — Observer le comportement

Situation Résultat
Pipeline exécuté depuis Windows job-windows job-mac
Pipeline exécuté depuis Mac job-mac job-windows
Runner partagé dispo job-partage s’exécute instantanément

À retenir

Élément Rôle
tags: dans le job Spécifie quels runners peuvent exécuter ce job
Tags du runner Définis à l’enregistrement (gitlab-runner register)
Matching Tous les tags du job doivent être présents sur le runner
Runners partagés N’ont souvent aucun tag → jobs sans tag uniquement

Bonus

job-multi:
  stage: info
  tags: [shell]
  script:
    - echo "Job shell compatible Mac/Windows"

Exemple de tag générique