Veranderlikes in Gitlab kan op verskeie plekke ingestel word:
- In groepinstellings
- In die projek instellings
- Binne .gitlab-ci.yml
In hierdie geval kan veranderlikes in die groep- en projekinstellings gestel word as "lêer" of "gewone veranderlike" en merk die "beskermde" en "masker"-merkblokkies.

Kom ons begin met eenvoudige oorerwing en dit sal geleidelik meer kompleks word.
Die finale lys van prioriteitsvlakke kan aan die einde van die dokument gevind word.
Oorerwing met groepe [bronne]
Veranderlikes van groepe word geërf, met die reël dat hoe nader die groep aan die projek geleë is, hoe belangriker is die waarde daarvan.
Groepe met veranderlikes

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSGPyplyn resultaat
$ echo $MSG
BAs die veranderlike nie in groep B gespesifiseer was nie, sou ons die waarde A gesien het.
Erf veranderlikes binne .gitlab-ci.yml [bronne]
Alles is redelik eenvoudig hier: jy kan 'n veranderlike wêreldwyd stel, of jy kan dit binne die werk oorskryf.
Groepe met veranderlikes

.gitlab-ci.yml
Kom ons skep nou 2 werksgeleenthede, in een van hulle sal ons uitdruklik $MSG aandui.
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 $MSGPyplyn resultaat
- eggo:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded - eggo met vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Oorerwing met groepe en binne .gitlab-ci.yml [bronne]
Kom ons probeer om die vorige 2 voorbeelde te kombineer. Groepveranderlikes geniet voorrang bo veranderlikes binne .gitlab-ci.yml.
Groepe met veranderlikes

.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 $MSGPyplyn resultaat
- eggo:
$ echo $MSG Y Job succeeded - eggo met vars:
$ echo $MSG Y Job succeeded
Oorerwing met spesifiseer veranderlikes in projek instellings [bronne]
Veranderlikes in projekinstellings het ALTYD die hoogste prioriteit! En die veranderlikes wat in .gitlab-ci.yml gespesifiseer word, speel geen rol nie.
Groepe met veranderlikes
Groepveranderlikes het laer prioriteit.

.gitlab-ci.yml
Kom ons gebruik die lêer van die vorige voorbeeld. Hier is daar weer veranderlikes binne .gitlab-ci.yml gespesifiseer, maar veranderlikes binne groepe geniet steeds voorrang bo hulle.
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 $MSGPyplyn resultaat
- eggo:
$ echo $MSG project-3 Job succeeded - eggo met vars:
$ echo $MSG project-3 Job succeeded
Erfenis met leë waarde [bronne]
'n Leë waarde is ook 'n waarde
'n Leë waarde is nie Nul nie
Groepe met veranderlikes

.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 $MSGPyplyn resultaat
- eggo:
$ echo $MSG Job succeeded - eggo met vars:
$ echo $MSG Job succeeded
Erfenis met insluit en groepe [bronne]
Hier sal ons probeer om projek-2 by projek-3 in te sluit
Groepe in hierdie geval het prioriteit.
Groepe met veranderlikes

.gitlab-ci.yml
En stel die veranderlike globaal in .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'Pyplyn resultaat
- eggo:
$ echo $MSG B Job succeeded - eggo met vars:
$ echo $MSG B Job succeeded
Erfenis met insluit [bronne]
Hier sal ons probeer om projek-2 by projek-3 in te sluit.
Met die voorwaarde dat: nie die groepe of die projek self enige veranderlikes het nie.
Groepe met veranderlikes

.gitlab-ci.yml
Dieselfde as in die vorige voorbeeld
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'Pyplyn resultaat
- eggo:
$ echo $MSG With include .gitlab-ci.yml Job succeeded - eggo met vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Die resultate is soos volg prioriteite:
- Veranderlikes in projekinstellings
- Veranderlikes in groepe
- Veranderlikes streng gespesifiseer binne werke (insluitend lêers wat ingesluit is)
- Globale veranderlikes binne .gitlab-ci.yml
- Globale veranderlikes binne ingesluit lêers
Gevolgtrekking
Die mees nie ooglopende punt is dat die reël "hoe nader 'n veranderlike aan die kode is, hoe belangriker is dit" eers vir groepe werk, en dan dieselfde reël vir veranderlikes binne .gitlab-ci.yml, maar slegs onder die voorwaarde dat die veranderlikes in die groepe nie gespesifiseer is nie.
Vervolgens is 'n belangrike punt om te verstaan dat die globale ruimte vir die hoof- en ingeslote .gitlab-ci.yml algemeen is. En die lêer waarin die insluiting plaasvind, het prioriteit.
Bron: will.com
