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.