Variablen am Gitlab kënnen op verschiddene Plazen gesat ginn:
- A Grupp Astellungen
- An de Projet Astellungen
- Bannen .gitlab-ci.yml
An dësem Fall kënnen d'Variabelen an de Gruppen- a Projetsastellungen als "Datei" oder "Regular Variabel" gesat ginn a kontrolléiert d'Këschte "geschützt" a "Mask".
Fänke mer mat der einfacher Ierfschaft un an et gëtt no an no méi komplex.
Déi lescht Lëscht vu Prioritéitsniveauen kann um Enn vum Dokument fonnt ginn.
Ierfschaft mat Gruppen [Quellen]
Variablen vu Gruppen ginn ierflecher, mat der Regel datt wat méi no de Grupp un de Projet läit, dest méi wichteg ass säi Wäert.
Gruppen mat Verännerlechen
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
Pipeline Resultat
$ echo $MSG
B
Wann d'Variabel net an der Grupp B spezifizéiert gouf, da géife mir de Wäert A gesinn.
Ierwen Verännerlechen bannent .gitlab-ci.yml [Quellen]
Alles ass ganz einfach hei: Dir kënnt eng Variabel global setzen, oder Dir kënnt se an der Aarbecht iwwerschreiwe.
Gruppen mat Verännerlechen
.gitlab-ci.yml
Loosst eis elo 2 Aarbechtsplaze schafen, an enger dovun wäerte mir explizit $MSG uginn.
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Custom in global .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Custom in job .gitlab-ci.yml"
script:
- echo $MSG
Pipeline Resultat
- erausgehäit:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded
- echo mat vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Ierfschaft mat Gruppen a bannen .gitlab-ci.yml [Quellen]
Loosst eis probéieren déi 2 virdrun Beispiller ze kombinéieren. Grupp Verännerlechen Virrang iwwer Verännerlechen bannent .gitlab-ci.yml.
Gruppen mat Verännerlechen
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Custom in global .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Custom in job .gitlab-ci.yml"
script:
- echo $MSG
Pipeline Resultat
- erausgehäit:
$ echo $MSG Y Job succeeded
- echo mat vars:
$ echo $MSG Y Job succeeded
Ierfschaft mat spezifizéieren Verännerlechen am Projet Astellunge [Quellen]
Variablen am Projet Astellungen hunn ËMMER déi héchst Prioritéit! An d'Verännerlechen, déi am .gitlab-ci.yml spezifizéiert sinn, spillen keng Roll.
Gruppen mat Verännerlechen
Grupp Variablen hu méi niddereg Prioritéit.
.gitlab-ci.yml
Loosst eis d'Datei aus dem fréiere Beispill benotzen. Hei ginn et nach eng Kéier Verännerlechen bannen .gitlab-ci.yml spezifizéiert, mee Verännerlechen bannent Gruppen nach Virrang iwwer hinnen.
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Custom in global .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Custom in job .gitlab-ci.yml"
script:
- echo $MSG
Pipeline Resultat
- erausgehäit:
$ echo $MSG project-3 Job succeeded
- echo mat vars:
$ echo $MSG project-3 Job succeeded
Ierfschaft mat eidel Wäert [Quellen]
En eidele Wäert ass och e Wäert
En eidele Wäert ass net Null
Gruppen mat Verännerlechen
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Custom in global .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Custom in job .gitlab-ci.yml"
script:
- echo $MSG
Pipeline Resultat
- erausgehäit:
$ echo $MSG Job succeeded
- echo mat vars:
$ echo $MSG Job succeeded
Ierfschaft mat abegraff a Gruppen [Quellen]
Hei wäerte mir probéieren de Projet-2 an de Projet-3 opzehuelen
Gruppen an dësem Fall Prioritéit.
Gruppen mat Verännerlechen
.gitlab-ci.yml
A setzen d'Variabel global an .gitlab-ci.yml
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
Pipeline Resultat
- erausgehäit:
$ echo $MSG B Job succeeded
- echo mat vars:
$ echo $MSG B Job succeeded
Ierfschaft mat abegraff [Quellen]
Hei wäerte mir probéieren de Projet-2 an de Projet-3 opzehuelen.
Mat der Bedingung datt: Weder d'Gruppen nach de Projet selwer Variabelen hunn.
Gruppen mat Verännerlechen
.gitlab-ci.yml
Selwecht wéi am virdrun Beispill
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
Pipeline Resultat
- erausgehäit:
$ echo $MSG With include .gitlab-ci.yml Job succeeded
- echo mat vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
D'Resultater si wéi follegt Prioritéiten:
- Variablen am Projet Astellunge
- Variablen a Gruppen
- Variablen streng spezifizéiert bannent Aarbechtsplazen (inklusiv Dateien abegraff)
- Global Verännerlechen bannen .gitlab-ci.yml
- Global Verännerlechen bannent abegraff Fichieren
Konklusioun
Deen net offensichtlechste Punkt ass datt d'Regel "wat méi no eng Variabel un de Code ass, wat et méi wichteg ass" fir d'éischt fir Gruppen funktionnéiert, an dann déiselwecht Regel fir Variablen bannent .gitlab-ci.yml, awer nëmmen ënner der Bedingung datt d'Variabelen an de Gruppen net spezifizéiert sinn.
Nächst, e wichtege Punkt ass ze verstoen, datt de globale Raum fir d'Haaptrei an abegraff .gitlab-ci.yml gemeinsam ass. An den Dossier an deem d'Inklusioun geschitt huet Prioritéit.
Source: will.com