Aller au contenu

2 TP avec les tags GitLab

  1. les tags Git (v1.0, v2.3, etc.) –> pour les versions de code (avec git tag v1.0)
  2. les tags de runner / job –> pour orienter l’exécution des pipelines (avec tags: [windows, shell])

Les 2 sont parfaitement compatibles avec le projet Spring Boot actuel.

TP6 : Comprendre les tags Git (versionner les builds)

Objectifs

Créer un tag Git localement

Dans votre terminal :

git tag -a v1.0 -m "Version 1.0 stable"
git push origin v1.0

Cela crée un tag Git nommé v1.0 et le pousse sur GitLab.

On peut le visualiser dans l’interface Repository –> Tags

Créer un pipeline déclenché uniquement sur les tags

stages:
  - build

build-release:
  image: maven:3.9-eclipse-temurin-17
  stage: build
  script:
    - echo "Création du build pour la version $CI_COMMIT_TAG"
    - mvn -B -ntp clean package -DskipTests
  rules:
    - if: '$CI_COMMIT_TAG'

Explication :

Résultat attendu

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

Déjà fait en démo et exercice.

Objectifs

Enregistrer 2 runners locaux

Sur 2 machines différentes (il faudrait être 2 pour ce tp et l’idéal avec 2 OS différents Mac et Windows), mais ce n’est pas toujours possible.

Machine Tags du runner Executor
Etudiant A windows,shell shell
Étudiant B mac,shell shell

Créer un .gitlab-ci.yml pour tester le filtrage

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"

Que se passe t-il lorsque vous exécutez le pipeline ?

Situation Résultat
Lancé depuis Windows job-windows job-mac (pending)
Lancé depuis Mac ou linux job-mac job-windows (pending)
Si un runner partagé GitLab existe job-partage s’exécute instantanément

Conclusion

Concept Rôle
tags: dans .gitlab-ci.yml Indique sur quels runners un job peut tourner
Tags du runner Définis lors du gitlab-runner register
Matching Un job n’est attribué qu’à un runner ayant tous les tags demandés
Runners partagés N’ont souvent aucun tag, donc exécutent les jobs sans tag