Gitlabis saab muutujaid mÀÀrata mitmes kohas:
- Grupi seadetes
- Projektiseadetes
- Failis .gitlab-ci.yml
Gruppide ja projektide seadetes saab muutujaid mÀÀrata kui âfailâ vĂ”i âtavaline muutujaâ ning valida kastid âkaitstudâ ja âmaskidaâ.

Alustame lihtsast pÀrandamisest ja raskendame jÀrk-jÀrgult.
LÔplikku prioriteedi tasemete loendit saab vaadata dokumendi lÔpus.
PĂ€randamine gruppide kaudu [source files]
RĂŒhmadest pĂ€rinevad muutujaid rakendatakse reegli jĂ€rgi, et mida lĂ€hemal on grupp projektile, seda tĂ€htsam on selle vÀÀrtus.
Muutujatega grupid

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSGPipeliini tulemus
$ echo $MSG
BKui muutujat ei oleks mÀÀratud grupis B, oleksime nÀinud vÀÀrtust A.
Muudatused muutuja pÀrimises failis .gitlab-ci.yml [source files]
Siin on kĂ”ik ĂŒsna lihtne: saab mÀÀrata globaalse muutuja vĂ”i kirjutada selle ĂŒmber töö sees.
Muutujatega grupid

.gitlab-ci.yml
Loome nĂŒĂŒd 2 tööd, millest ĂŒhes mÀÀrame selgelt $MSG.
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Kohandatud globaalne .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Kohandatud töö .gitlab-ci.yml"
script:
- echo $MSGPipeliini tulemus
- echo:
$ echo $MSG Kohandatud globaalne .gitlab-ci.yml Töö Ônnestus - echo with vars:
$ echo $MSG Kohandatud töö .gitlab-ci.yml Töö Ônnestus
PĂ€randamine gruppide kaudu ja faili .gitlab-ci.yml sees [source files]
Proovime kombineerida eelnevaid 2 nÀidet. Gruppide muutujad on eelistatud vÔrreldes muudatustega failis .gitlab-ci.yml.
Muutujatega grupid

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Kohandatud globaalne .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Kohandatud töö .gitlab-ci.yml"
script:
- echo $MSGPipeliini tulemus
- echo:
$ echo $MSG Y Töö Ônnestus - echo with vars:
$ echo $MSG Y Töö Ônnestus
PÀrandamine projektide seadetes mÀÀratud muutujatega [source files]
Projektide seadetes mÀÀratud muutujad on ALATI kÔige kÔrgema prioriteediga! Ja failis .gitlab-ci.yml mÀÀratud muutujatel ei ole mingit tÀhtsust.
Muutujatega grupid
Grupi muutujatel on madalam prioriteet.

.gitlab-ci.yml
Kasutame eelnevas nÀites olevat faili. Siin on taas kohal muutujad failis .gitlab-ci.yml, kuid grupi muutujad on endiselt neist kÔrgema prioriteediga.
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Kohandatud globaalne .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Kohandatud töö .gitlab-ci.yml"
script:
- echo $MSGPipeliini tulemus
- echo:
$ echo $MSG project-3 Töö Ônnestus - echo with vars:
$ echo $MSG project-3 Töö Ônnestus
PĂ€randamine tĂŒhja vÀÀrtusega [source files]
TĂŒhi vÀÀrtus on samuti vÀÀrtus
TĂŒhi vÀÀrtus ei ole Null
Muutujatega grupid

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Kohandatud globaalne .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Kohandatud töö .gitlab-ci.yml"
script:
- echo $MSGPipeliini tulemus
- echo:
$ echo $MSG Töö Ônnestus - echo with vars:
$ echo $MSG Töö Ônnestus
PĂ€randamine koos kaasamise ja gruppidega [source files]
Siin proovime projektis project-2 kaasata project-3
Gruppidel on sel juhul prioriteet.
Muutujatega grupid

.gitlab-ci.yml
Ja mÀÀrame muutuja globaalselt failis .gitlab-ci.yml
variables:
MSG: "Kaasamine .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'Pipeliini tulemus
- echo:
$ echo $MSG B Töö Ônnestus - echo with vars:
$ echo $MSG B Töö Ônnestus
PĂ€randamine koos kaasamisega [source files]
Siin proovime projektis project-2 kaasata project-3.
Kuna tingimusel, et ei rĂŒhm ega projekt ei sisalda muutujaid.
Muutujatega grupid

.gitlab-ci.yml
Sama nagu eelnevas nÀites
variables:
MSG: "Kaasamine .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'Pipeliini tulemus
- echo:
$ echo $MSG Sisaldab .gitlab-ci.yml Töö Ônnestus - echo with vars:
$ echo $MSG Kohandatud töö .gitlab-ci.yml Töö Ônnestus
Saame jÀrgmised prioriteedid:
- Muutujad projekti seadetes
- Muutujad rĂŒhmades
- Muutujad, mis on rangelt mÀÀratud töö sees (kaasa arvatud kaasatud failid)
- Globaalne muutujad .gitlab-ci.yml sees
- Globaalne muutujad kaasatud failides
KokkuvÔte
Kohaneb kĂ”ige vĂ€hem ilmselge, et reegel 'mida lĂ€hemal muutuja koodile, seda olulisem' kehtib kĂ”igepealt rĂŒhmadele ning seejĂ€rel sama reegel ka .gitlab-ci.yml failides, kuid tingimusel, et rĂŒhmades ei ole muutujaid mÀÀratud.
Oluline koht on ka mĂ”ista, et globaalne ruum pĂ”hjaliku ja kaasatud .gitlab-ci.yml jaoks on ĂŒhisosa. Ja see fail, kuhu toimub kaasamine, omab prioriteeti.
Allikas: habr.com
