Fariabelen yn Gitlab kinne op ferskate plakken ynsteld wurde:
- Yn groepynstellingen
- Yn 'e projektynstellingen
- Binnen .gitlab-ci.yml
Yn dit gefal kinne fariabelen yn 'e groep- en projektynstellingen ynsteld wurde as "bestĂąn" of "gewoane fariabele" en kontrolearje de karfakjes "beskerme" en "masker".

Litte wy begjinne mei ienfĂąldige erfenis en it sil stadichoan komplekser wurde.
De definitive list mei prioriteitsnivo's is te finen oan 'e ein fan it dokumint.
Erfskip mei groepen [boarnen]
Fariabelen Ășt groepen wurde erfd, mei de regel dat hoe tichter de groep leit by it projekt, hoe wichtiger de wearde is.
Groepen mei fariabelen

.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSGPipeline resultaat
$ echo $MSG
BAs de fariabele net spesifisearre wie yn groep B, dan soene wy ââââde wearde A sjoen hawwe.
Ynheriting fariabelen binnen .gitlab-ci.yml [boarnen]
Alles is hjir frij simpel: jo kinne in fariabele globaal ynstelle, of jo kinne it oerskriuwe yn 'e baan.
Groepen mei fariabelen

.gitlab-ci.yml
Litte wy no 2 banen oanmeitsje, yn ien dĂȘrfan sille wy $MSG eksplisyt oanjaan.
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 $MSGPipeline resultaat
- smiet Ășt:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded - echo mei vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Erfskip mei groepen en binnen .gitlab-ci.yml [boarnen]
Litte wy besykje de foarige 2 foarbylden te kombinearjen. Groep fariabelen hawwe foarrang boppe fariabelen binnen .gitlab-ci.yml.
Groepen mei fariabelen

.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 $MSGPipeline resultaat
- smiet Ășt:
$ echo $MSG Y Job succeeded - echo mei vars:
$ echo $MSG Y Job succeeded
Erfskip mei it opjaan fan fariabelen yn projektynstellingen [boarnen]
Fariabelen yn projektynstellingen hawwe ALTYD de heechste prioriteit! En de fariabelen oantsjutte binnen .gitlab-ci.yml net spylje gjin rol.
Groepen mei fariabelen
Groep fariabelen hawwe legere prioriteit.

.gitlab-ci.yml
Litte wy it bestùn brûke fan it foarige foarbyld. Hjir wer binne der fariabelen oantsjutte binnen .gitlab-ci.yml, mar fariabelen binnen groepen noch foarrang boppe harren.
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 $MSGPipeline resultaat
- smiet Ășt:
$ echo $MSG project-3 Job succeeded - echo mei vars:
$ echo $MSG project-3 Job succeeded
Erfskip mei lege wearde [boarnen]
In lege wearde is ek in wearde
In lege wearde is net Null
Groepen mei fariabelen

.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 $MSGPipeline resultaat
- smiet Ășt:
$ echo $MSG Job succeeded - echo mei vars:
$ echo $MSG Job succeeded
Erfskip mei ynklusyf en groepen [boarnen]
Hjir sille wy besykje projekt-2 op te nimmen yn projekt-3
Groepen yn dit gefal hawwe prioriteit.
Groepen mei fariabelen

.gitlab-ci.yml
En set de fariabele globaal yn .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 resultaat
- smiet Ășt:
$ echo $MSG B Job succeeded - echo mei vars:
$ echo $MSG B Job succeeded
Erfskip mei befetsje [boarnen]
Hjir sille wy besykje projekt-2 op te nimmen yn projekt-3.
Mei de betingst dat: noch de groepen noch it projekt sels fariabelen hawwe.
Groepen mei fariabelen

.gitlab-ci.yml
Itselde as yn it foarige foarbyld
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 resultaat
- smiet Ășt:
$ echo $MSG With include .gitlab-ci.yml Job succeeded - echo mei vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
De resultaten binne as folget prioriteiten:
- Fariabelen yn projektynstellingen
- Fariabelen yn groepen
- Fariabelen strikt spesifisearre binnen banen (ynklusyf ynbegrepen bestannen)
- Globale fariabelen binnen .gitlab-ci.yml
- Globale fariabelen binnen opnommen bestannen
konklĂșzje
It meast net foar de hùn lizzende punt is dat de regel "hoe tichter in fariabele is by de koade, hoe wichtiger it is" wurket earst foar groepen, en dan deselde regel foar fariabelen binnen .gitlab-ci.yml, mar allinich ûnder de betingst dat de fariabelen yn 'e groepen net oantsjutte binne.
Folgjende, in wichtich punt is om te begripen dat de globale romte foar de wichtichste en opnommen .gitlab-ci.yml is mienskiplik. En it bestĂąn wĂȘryn it opnimmen foarkomt hat prioriteit.
Boarne: www.habr.com
