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.

Beginnen wir mit der einfachen Vererbung und werden allmählich komplexer.
Eine endgültige Liste der Prioritätsstufen finden Sie am Ende des Dokuments.
, , .

image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
$ echo $MSG
B
B, .
.gitlab-ci.yml []
: , .
c

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

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
.

. , , .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

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

.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

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.