Skip to content

Mots-clés avancés

Les mots-clés parfois utilisés et qui ne sont pas dans la page CI GitLab: default, extends, cache, dependencies, allow_failure, environment, et les variables de job.

default

Valeurs appliquées à tous les jobs, sauf si un job redéfinit la sienne. Pratique pour le tag du runner ou l'image:

default:
  tags:
    - shell

On peut aussi mettre image: tout en haut du fichier sans passer par default::

image: node:20

artifacts: les options utiles

artifacts:
  name: docs         # nom de l'archive téléchargée
  paths:
    - docs.zip

  expire_in: 1 hour  # supprimé automatiquement après
  when: on_success   # (défaut) on_failure / always possibles

dependencies et needs

Effet
(rien) le job télécharge les artifacts de tous les jobs des stages précédents
dependencies: [] il ne télécharge aucun artifact (plus rapide si inutile)
dependencies: [build] seulement ceux de build
needs: [build] pareil, et le job démarre dès que build est fini, sans attendre la fin du stage
docs-zip:
  stage: package
  dependencies: []         # pas besoin du dist/ du build

deploy-staging:
  stage: deploy
  needs:
    - job: build-site
      artifacts: true      # récupère le dist/ de build-site

allow_failure

Un job avec allow_failure: true peut échouer sans que la pipeline soit considérée comme échouée (et sans bloquer la suite). Avec false, un échec arrête tout.

Pour un job manuel:

  • allow_failure: false: la pipeline attend que quelqu'un clique sur ▶️ (elle reste "bloquée" en attendant)
  • allow_failure: true: la pipeline peut se terminer sans que le job soit lancé

variables de job et GIT_DEPTH

changelog:
  stage: changelog
  variables:
    GIT_DEPTH: "0"

Par défaut, GitLab ne clone que les derniers commits (souvent 20). Pour lire tout l'historique (git log pour un changelog), il faut GIT_DEPTH: "0". Les valeurs de variables: sont entre guillemets.

On peut aussi définir des variables pour tous les jobs avec un variables: global tout en haut.