Les variables d'environnement sont les plus courantes dans GitLab CI/CD. Elles servent à stocker des données qui peuvent être utilisées par les scripts des jobs. Par exemple, vous pouvez définir une variable DATABASE_URL pour stocker l'URL de votre base de données. Ces variables sont accessibles dans les scripts de pipeline en utilisant la syntaxe standard des variables d'environnement, comme $DATABASE_URL dans un script shell.
Les variables protégées sont d'utiles pour stocker des données sensibles qui ne doivent être utilisées que dans un environnement de production ou un environnement similaire sécurisé. Par exemple, vous pouvez avoir une clé API qui ne doit être utilisée que lors du déploiement en production.
Les variables masquées sont une fonctionnalité de sécurité qui empêche la valeur de la variable d'être affichée dans les logs de GitLab. C'est particulièrement important pour les secrets, comme les mots de passe ou les clés API. Lorsqu'une variable est masquée, sa valeur est remplacée par des astérisques dans les logs d'exécution de pipeline.
Création de deux variables
$MY_MASKED_VARIABLE
&$MY_PROTECTED_VARIABLE
job_example:
script:
- echo $MY_MASKED_VARIABLE # Cette variable est protégée et ne sera pas visible dans les logs
- echo $MY_PROTECTED_VARIABLE # Cette variable sera visible dans les logs
tags:
- docker
Les variables prédéfinies dans GitLab CI/CD sont des variables automatiquement définies par le système et mises à la disposition de vos jobs lors de l'exécution d'un pipeline.
- Variables relatives au pipeline :
- $CI_PIPELINE_ID: L'ID unique du pipeline.
- $CI_PIPELINE_IID: L'ID interne du pipeline.
- $CI_COMMIT_REF_NAME: Le nom de la branche ou de l'étiquette en cours.
- $CI_COMMIT_REF_PROTECTED: Indique si la branche ou l'étiquette est protégée.
- Variables relatives au commit associé :
- $CI_COMMIT_SHA: Le SHA-1 du commit associé au pipeline.
- $CI_COMMIT_SHORT_SHA: La version courte (7 premiers caractères) du SHA-1 du commit.
- $CI_COMMIT_BRANCH: Le nom de la branche du commit associé.
- $CI_COMMIT_TAG: Le nom de l'étiquette si le commit est associé à une étiquette
Exemple :
- sans stage (juste des jobs)
start-job:
tags:
- shell
script:
- echo "Start..."
- echo "$CI_JOB_ID"
end-job:
tags:
- shell
script:
- echo "ended !!"
variables:
GLOBAL_VAR: "Hello"
start-job:
tags:
- shell
script:
- echo "Start..."
- echo "$GLOBAL_VAR"
- echo "ended !!"
variables:
GLOBAL_VAR: "Hello"
start-job:
tags:
- shell
variables:
LOCAL_VAR: "Hello DAS !!"
script:
- echo "Start..."
- echo "$LOCAL_VAR"
- echo "ended !!"
variables:
VAR: "Hello"
start-job:
tags:
- shell
variables:
VAR: "Hello DAS !!"
script:
- echo "Start..."
- echo "$VAR"
- echo "ended !!"
- group > settings > CICD > Variables