Variablat në GitLab mund të vendosen në disa vende:
- NĂ« konfigurimet e grupeve
- NĂ« konfigurimet e projektit
- Brenda .gitlab-ci.yml
Në këtë mënyrë, variablat në konfigurimet e grupeve dhe të projekteve mund të vendosen si "skedë" ose "variabël normale" dhe të aktivizohen opsionet "të mbrojtur" dhe "maskë".

Të fillojmë me trashëgiminë e thjeshtë dhe do të complicohet gradualisht.
Një listë përfundimtare të niveleve të prioriteteve mund të gjendet në fund të dokumentit.
Trashëgimi me grupe [burimet]
Variablave nga grupet u jepe vlen, me rregullin se sa më afër grupi të jetë projekti, aq më e rëndësishme është vlera e saj.
Grupet me variabla

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSGRezultati i pipeline-it
$ echo $MSG
BNëse variabli nuk do të ishte specifikuar në grupin B, ne do të shihnim vlerën A.
Trashëgimi e variablave brenda .gitlab-ci.yml [burimet]
Këtu gjithçka është mjaft e thjeshtë: mund të vendosni një variabël globalisht, ose ta tejkaloni atë brenda punës.
Grupet me variabla

.gitlab-ci.yml
Tani do të krijojmë 2 punë, në një prej tyre do të specifikojmë qartë $MSG.
imazh: busybox:latest
variabla:
GIT_STRATEGY: none
MSG: "Personalizuar në .gitlab-ci.yml globale"
echo:
faza: test
skripti:
- echo $MSG
echo me var:
faza: test
variabla:
MSG: "Personalizuar në .gitlab-ci.yml të punës"
skripti:
- echo $MSGRezultati i pipeline-it
- echo:
$ echo $MSG Personalizuar në .gitlab-ci.yml globale Punë e suksesshme - echo me vars:
$ echo $MSG Personalizuar në .gitlab-ci.yml të punës Punë e suksesshme
Trashëgimia me grupe dhe brenda .gitlab-ci.yml [burimet]
Le të përpiqemi të bashkojmë dy shembujt e mëparshëm. Variablat e grupeve kanë përparësi mbi variablat brenda .gitlab-ci.yml.
Grupet me variabla

.gitlab-ci.yml
imazh: busybox:latest
variabla:
GIT_STRATEGY: none
MSG: "Personalizuar në .gitlab-ci.yml globale"
echo:
faza: test
skripti:
- echo $MSG
echo me var:
faza: test
variabla:
MSG: "Personalizuar në .gitlab-ci.yml të punës"
skripti:
- echo $MSGRezultati i pipeline-it
- echo:
$ echo $MSG Y Punë e suksesshme - echo me vars:
$ echo $MSG Y Punë e suksesshme
Trashëgimia me përcaktimin e variablave në konfigurimet e projektit [burimet]
Variablat në konfigurimet e projektit KANà gjithmonë përparësi më të lartë! Dhe variablat e përcaktuara brenda .gitlab-ci.yml nuk luajnë asnjë rol.
Grupet me variabla
Variablat e grupeve kanë përparësi më të ulët.

.gitlab-ci.yml
Do të përdorim skedarin nga shembulli i mëparshëm. Këtu prapë ka variabla të përcaktuar brenda .gitlab-ci.yml, por variablat brenda grupeve përsëri kanë përparësi mbi ata.
imazh: busybox:latest
variabla:
GIT_STRATEGY: none
MSG: "Personalizuar në .gitlab-ci.yml globale"
echo:
faza: test
skripti:
- echo $MSG
echo me var:
faza: test
variabla:
MSG: "Personalizuar në .gitlab-ci.yml të punës"
skripti:
- echo $MSGRezultati i pipeline-it
- echo:
$ echo $MSG project-3 Punë e suksesshme - echo me vars:
$ echo $MSG project-3 Punë e suksesshme
Trashëgimia me vlera bosh [burimet]
Vlera bosh â Ă«shtĂ« gjithashtu njĂ« vlerĂ«
Vlera bosh â nuk Ă«shtĂ« Null
Grupet me variabla

.gitlab-ci.yml
imazh: busybox:latest
variabla:
GIT_STRATEGY: none
MSG: "Personalizuar në .gitlab-ci.yml globale"
echo:
faza: test
skripti:
- echo $MSG
echo me var:
faza: test
variabla:
MSG: "Personalizuar në .gitlab-ci.yml të punës"
skripti:
- echo $MSGRezultati i pipeline-it
- echo:
$ echo $MSG Punë e suksesshme - echo me vars:
$ echo $MSG Punë e suksesshme
Trashëgimia me përfshirje dhe grupe [burimet]
Këtu do të përpiqemi të përfshijmë project-3 në project-2
Grupet në këtë rast kanë përparësi.
Grupet me variabla

.gitlab-ci.yml
Dhe do të caktosh një variabël globalisht në .gitlab-ci.yml
variablat:
MSG: "Me përfshirë .gitlab-ci.yml"
include:
- projekt: si-është-gitlab-ci-dëgjo-variablat-e-mjedisit/z/y/projekti-3
file: '.gitlab-ci.yml'Rezultati i pipeline-it
- echo:
$ echo $MSG B Punimi u krye me sukses - echo me vars:
$ echo $MSG B Punimi u krye me sukses
Trashëgimia me përfshirje [burimet]
Këtu do të përpiqemi të përfshijmë projektin-3 në projekt-2.
Me kusht që: as grupi, as projekti vetë të mos kenë variabla.
Grupet me variabla

.gitlab-ci.yml
I njëjtë si në shembullin e mëparshëm
variablat:
MSG: "Me përfshirë .gitlab-ci.yml"
include:
- projekt: si-është-gitlab-ci-dëgjo-variablat-e-mjedisit/z/y/projekti-3
file: '.gitlab-ci.yml'Rezultati i pipeline-it
- echo:
$ echo $MSG Me përfshirë .gitlab-ci.yml Punimi u krye me sukses - echo me vars:
$ echo $MSG Personalizuar në .gitlab-ci.yml të punës Punë e suksesshme
Rezultojnë siç vijon prioritetet:
- Variablat në cilësimet e projektit
- Variablat në grupe
- Variablat e përcaktuara në mënyrë strikte brenda punës (përfshirë dhe skedarët e përfshirë)
- Variablat globale brenda .gitlab-ci.yml
- Variablat globale brenda skedarëve të përfshirë
Përfundimi
Pika më pak e dukshme është se rregulli 'sa më afër variablës me kodin, aq më e rëndësishme' funksionon fillimisht për grupet, dhe pastaj të njëjtin rregull për variablat brenda .gitlab-ci.yml, por vetëm me kushtin që variablat në grupe të mos jenë të caktuara.
Një vend tjetër i rëndësishëm është kuptimi se hapësira globale për .gitlab-ci.yml kryesore dhe të përfshirë është e përbashkët. Dhe skedari në të cilin ndodhet përfshirja ka prioritet.
Burimi: habr.com
