Gitlab-Variablen können an mehreren Stellen festgelegt werden:
- In Gruppeneinstellungen
- In den Projekteinstellungen
- Innerhalb von .gitlab-ci.yml
In diesem Fall können die Variablen in den Einstellungen der Gruppen und des Projekts als "Datei" oder "normale Variable" festgelegt werden und die Kontrollkästchen "geschützt" und "Maske" aktivieren.
![](https://habrastorage.org/webt/iu/2f/d2/iu2fd2ums7tmrkyqb4hrbhuenzg.png)
Beginnen wir mit der einfachen Vererbung und werden allmählich komplexer.
Eine endgültige Liste der Prioritätsstufen finden Sie am Ende des Dokuments.
, , .
![Gruppen mit Variablen](https://habrastorage.org/webt/4b/wl/qj/4bwlqj-g_cztown5ks5znmiqgl8.png)
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
$ echo $MSG
B
B, .
.gitlab-ci.yml []
: , .
c
![](https://habrastorage.org/webt/ze/em/ih/zeemihn1rerz65eb_hgmejkx0iw.png)
2 , $MSG.
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 $MSG
.gitlab-ci.yml []
2 . .gitlab-ci.yml.
c
![](https://habrastorage.org/webt/wv/ke/3o/wvke3o9zni565rug1kegmkorxha.png)
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 $MSG
! , .gitlab-ci.yml .
c
.
![](https://habrastorage.org/webt/by/ni/zb/bynizbno7obalix_sxmgiz0dggm.png)
. , , .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 $MSG
–
– Null
c
![](https://habrastorage.org/webt/vs/mv/gq/vsmvgqrc4q9eh_zpevibj3tqa8u.png)
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 $MSG
project-2 project-3
.
c
![](https://habrastorage.org/webt/lc/vg/19/lcvg19w1dkgdqlkennmeta1awcu.png)
.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'
project-2 project-3.
C : , .
c
![](https://habrastorage.org/webt/mp/bv/e1/mpbve1krliedbl7j3wb3md2ecjk.png)
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
:
- ( )
- .gitlab-ci.yml
Der offensichtlichste Punkt ist, dass die Regel "Je näher die Variable am Code ist, desto wichtiger ist sie" zuerst für Gruppen und dann für Variablen in .gitlab-ci.yml gilt, jedoch nur unter der Bedingung, dass die Variablen in den Gruppen nicht definiert sind .
Ein wichtiger Ort ist außerdem das Verständnis, dass der globale Raum für den Kern und das ausgeschlossene .gitlab-ci.yml gemeinsam ist. Und die Datei, in der die Aufnahme erfolgt, hat Vorrang.