Variables in Gitlab ponu esse stabilite in parechji posti:
- In i paràmetri di u gruppu
- In i paràmetri di u prugettu
- Dentru .gitlab-ci.yml
In questu casu, i variàbili in i paràmetri di u gruppu è di u prughjettu ponu esse definiti cum'è "file" o "variabile regulare" è verificate e caselle di spunta "prutettu" è "mask".
Cuminciamu cù l'eredità simplice è diventerà gradualmente più cumplessu.
A lista finali di i livelli di priorità pò esse truvata à a fine di u documentu.
Eredità cù gruppi [fonti]
Variabili da i gruppi sò ereditati, cù a regula chì u più vicinu u gruppu hè situatu à u prugettu, u più impurtante hè u so valore.
Gruppi cù variàbili
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
U risultatu di u pipeline
$ echo $MSG
B
Se a variàbile ùn era micca stata specificata in u gruppu B, allora avemu vistu u valore A.
Eredità di variàbili in .gitlab-ci.yml [fonti]
Tuttu hè abbastanza simplice quì: pudete stabilisce una variabile in u mondu, o pudete soprascrivite in u travagliu.
Gruppi cù variàbili
.gitlab-ci.yml
Creemu avà 2 impieghi, in unu di elli indicheremu esplicitamente $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
U risultatu di u pipeline
- ecu:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded
- ecu cù vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Eredità cù gruppi è in .gitlab-ci.yml [fonti]
Pruvemu di cumminà i 2 esempi precedenti. I variàbili di u gruppu anu a precedenza annantu à e variàbili in .gitlab-ci.yml.
Gruppi cù variàbili
.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
U risultatu di u pipeline
- ecu:
$ echo $MSG Y Job succeeded
- ecu cù vars:
$ echo $MSG Y Job succeeded
Eredità cù variàbili specifichi in i paràmetri di u prugettu [fonti]
Variabili in i paràmetri di u prughjettu anu SEMPRE a più alta priorità! È e variàbili specificate in .gitlab-ci.yml ùn anu micca un rolu.
Gruppi cù variàbili
Variabili di gruppu anu una priorità più bassa.
.gitlab-ci.yml
Utilizemu u schedariu da l'esempiu precedente. Quì dinò ci sò variabili specificati in .gitlab-ci.yml, ma i variàbili in i gruppi anu sempre a precedenza annantu à elli.
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
U risultatu di u pipeline
- ecu:
$ echo $MSG project-3 Job succeeded
- ecu cù vars:
$ echo $MSG project-3 Job succeeded
Eredità cù valore viotu [fonti]
Un valore viotu hè ancu un valore
Un valore viotu ùn hè micca Null
Gruppi cù variàbili
.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
U risultatu di u pipeline
- ecu:
$ echo $MSG Job succeeded
- ecu cù vars:
$ echo $MSG Job succeeded
Eredità cù include è gruppi [fonti]
Quì avemu da pruvà à include project-2 in project-3
I gruppi in questu casu anu priorità.
Gruppi cù variàbili
.gitlab-ci.yml
È stabilisce a variàbile globally 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'
U risultatu di u pipeline
- ecu:
$ echo $MSG B Job succeeded
- ecu cù vars:
$ echo $MSG B Job succeeded
Eredità cù include [fonti]
Quì avemu da pruvà à include project-2 in project-3.
Cù a cundizione chì: nè i gruppi nè u prugettu stessu ùn anu micca variàbili.
Gruppi cù variàbili
.gitlab-ci.yml
U listessu cum'è in l'esempiu precedente
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
U risultatu di u pipeline
- ecu:
$ echo $MSG With include .gitlab-ci.yml Job succeeded
- ecu cù vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
I risultati sò i seguenti priurità:
- Variabili in i paràmetri di u prugettu
- Variabili in gruppi
- Variabili strettamente specificate in i travaglii (cumpresi i schedari inclusi)
- Variabili globale in .gitlab-ci.yml
- Variabili globale in i schedari inclusi
cunchiusioni
U puntu più micca evidenti hè chì a regula "più vicinu una variabile hè di u codice, u più impurtante hè" travaglia prima per i gruppi, è dopu a listessa regula per i variàbili in .gitlab-ci.yml, ma solu sottu a cundizione. chì e variàbili in i gruppi ùn sò micca specificate.
In seguitu, un puntu impurtante hè di capisce chì u spaziu glubale per u .gitlab-ci.yml principale è inclusu hè cumunu. È u schedariu in u quale l'inclusione si trova hà priorità.
Source: www.habr.com