Gitlabis saab muutujaid mÀÀrata mitmes kohas:
- RĂŒhma seadetes
- Projektide seadetes
- Failis .gitlab-ci.yml
Samas saab rĂŒhma ja projekti seadetes mÀÀrata muutujad kui âfailâ vĂ”i âtavaline muutujaâ ning mĂ€rkida valikuid âkaitstudâ ja âmaskeeritudâ.

Alustame lihtsast pÀrandamisest ja keerame seda jÀrk-jÀrgult keerulisemaks.
LÔpliku prioriteetide loetelu saab vaadata dokumendi lÔpus.
PĂ€rimine rĂŒhmade abil [allikad]
RĂŒhmades mÀÀratud muutujad pĂ€rinevad, jĂ€rgides reeglit, et mida lĂ€hemal on rĂŒhm projektile, seda olulisem on selle vÀÀrtus.
RĂŒhmad koos muutujaid

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSGPipelinesi tulemus
$ echo $MSG
BKui muutuja poleks rĂŒhmas B mÀÀratud, oleksime nĂ€inud vÀÀrtust A.
Muutujate pÀrimine .gitlab-ci.yml sees [allikad]
Siin on kĂ”ik ĂŒsna lihtne: saad mÀÀrata muutuja globaalsetena vĂ”i kirjutada selle töö sees ĂŒle.
RĂŒhmad koos muutujaid

.gitlab-ci.yml
Loome nĂŒĂŒd 2 tööd, millest ĂŒhes mÀÀrame selgelt $MSG.
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Kohandatud globaalses .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Kohandatud töö .gitlab-ci.yml"
script:
- echo $MSGPipelinesi tulemus
- echo:
$ echo $MSG Kohandatud globaalsetes .gitlab-ci.yml Töö Ônnestus - echo koos muutujaid:
$ echo $MSG Kohandatud töö .gitlab-ci.yml Töö Ônnestus
PĂ€rimine rĂŒhmadest ja .gitlab-ci.yml sees [allikad]
Proovime ĂŒhendada eelnevaid 2 nĂ€idet. RĂŒhma muutujad on eelised muutuja ĂŒle .gitlab-ci.yml.
RĂŒhmad koos muutujaid

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Kohandatud globaalses .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Kohandatud töö .gitlab-ci.yml"
script:
- echo $MSGPipelinesi tulemus
- echo:
$ echo $MSG Y Töö Ônnestus - echo koos muutujaid:
$ echo $MSG Y Töö Ônnestus
Muutujate pÀrimine projekti seadetes [allikad]
Muutujad projekti seadetes on ALATI kÔrgeima prioriteediga! Ja .gitlab-ci.yml sees mÀÀratud muutujatel pole mingit rolli.
RĂŒhmad koos muutujaid
RĂŒhma muutujatel on madalam prioriteet.

.gitlab-ci.yml
Kasutame eelnevas nĂ€ites olevaid faile. Siin on jĂ€lle muutujad, mis on mÀÀratud .gitlab-ci.yml sees, kuid rĂŒhmade muutujatel on endiselt nende ees prioriteet.
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Kohandatud globaalses .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Kohandatud töö .gitlab-ci.yml"
script:
- echo $MSGPipelinesi tulemus
- echo:
$ echo $MSG projekt-3 Töö Ônnestus - echo koos muutujaid:
$ echo $MSG projekt-3 Töö Ônnestus
PĂ€rimine tĂŒhja vÀÀrtusega [allikad]
TĂŒhi vÀÀrtus on samuti vÀÀrtus
TĂŒhi vÀÀrtus ei ole Null
RĂŒhmad koos muutujaid

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
MSG: "Kohandatud globaalses .gitlab-ci.yml"
echo:
stage: test
script:
- echo $MSG
echo with var:
stage: test
variables:
MSG: "Kohandatud töö .gitlab-ci.yml"
script:
- echo $MSGPipelinesi tulemus
- echo:
$ echo $MSG Töö Ônnestus - echo koos muutujaid:
$ echo $MSG Töö Ônnestus
PĂ€rimine lisamise ja rĂŒhmadega [allikad]
Siin proovime project-2-sse lisada project-3
RĂŒhmadel on sel juhul prioriteet.
RĂŒhmad koos muutujaid

.gitlab-ci.yml
Ja mÀÀrame muutuja globaalset .gitlab-ci.yml
variables:
MSG: "Koos lisamisega .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'Pipelinesi tulemus
- echo:
$ echo $MSG B Töö Ônnestus - echo koos muutujaid:
$ echo $MSG B Töö Ônnestus
PĂ€rimine lisamisega [allikad]
Siin proovime project-2-sse sisse tuua project-3.
Eeldusel, et ei rĂŒhmadel ega projektil endal ei ole mingeid muutujaid.
RĂŒhmad koos muutujaid

.gitlab-ci.yml
Sama nagu eelnevas nÀites
variables:
MSG: "Koos lisamisega .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'Pipelinesi tulemus
- echo:
$ echo $MSG Include .gitlab-ci.yml Töö Ônnestus - echo koos muutujaid:
$ echo $MSG Kohandatud töö .gitlab-ci.yml Töö Ônnestus
Saame jÀrgmised prioriteedid:
- Muutujad projekti seadetes
- Muutujad rĂŒhmades
- Töös rangelt mÀÀratletud muutujad (kaasa arvatud sisse toodud failid)
- Globaalsete muutujate vÀÀrtused .gitlab-ci.yml failis
- Globaalsete muutujate vÀÀrtused sisse toodud failides
KokkuvÔte
KĂ”ige vĂ€hem ilmne moment on see, et reegel «mida lĂ€hemal muutuja koodile, seda olulisem» kehtib kĂ”igepealt rĂŒhmade jaoks ja seejĂ€rel kehtib sama reegel ka .gitlab-ci.yml failide muutujate kohta, kuid tingimusel, et rĂŒhmades ei ole muutujaid mÀÀratletud.
Edasi on oluline mĂ”ista, et globaalne ruum pĂ”hifaili ja sisse toodud .gitlab-ci.yml jaoks on ĂŒhine. Ja see fail, kuhu sisse tuuakse, omab prioriteeti.
Allikas: habr.com
