Varjabbli f'Gitlab jistgħu jiġu stabbiliti f'diversi postijiet:
- Fl-issettjar tal-grupp
- Fis-settings tal-proġett
- Ġewwa .gitlab-ci.yml
F'dan il-każ, varjabbli fis-settings tal-grupp u tal-proġett jistgħu jiġu ssettjati bħala "fajl" jew "varjabbli regolari" u ċċekkja l-kaxxi ta 'kontroll "protetti" u "maskra".
Nibdew b'wirt sempliċi u gradwalment isir aktar kumpless.
Il-lista finali tal-livelli ta' prijorità tista' tinstab fl-aħħar tad-dokument.
Wirt ma' gruppi [sorsi]
Il-varjabbli minn gruppi jintirtu, bir-regola li iktar ma jkun viċin il-grupp tal-proġett, iktar ikun importanti l-valur tiegħu.
Gruppi b'varjabbli
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
Riżultat tal-pipeline
$ echo $MSG
B
Kieku l-varjabbli ma kinitx speċifikata fil-grupp B, allura konna naraw il-valur A.
Jiret varjabbli ġewwa .gitlab-ci.yml [sorsi]
Kollox huwa pjuttost sempliċi hawn: tista 'tissettja varjabbli globalment, jew tista' tikteb fuqha fuq ix-xogħol.
Gruppi b'varjabbli
.gitlab-ci.yml
Ejja issa noħolqu 2 impjiegi, f'wieħed minnhom se nindikaw b'mod espliċitu $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
Riżultat tal-pipeline
- eku:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded
- eku b'vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Wirt bi gruppi u ġewwa .gitlab-ci.yml [sorsi]
Ejja nippruvaw ngħaqqdu ż-żewġ eżempji preċedenti. Il-varjabbli tal-grupp jieħdu preċedenza fuq il-varjabbli ġewwa .gitlab-ci.yml.
Gruppi b'varjabbli
.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
Riżultat tal-pipeline
- eku:
$ echo $MSG Y Job succeeded
- eku b'vars:
$ echo $MSG Y Job succeeded
Wirt ma jispeċifika varjabbli fl-issettjar tal-proġett [sorsi]
Varjabbli fl-issettjar tal-proġett DEJJEM għandhom l-ogħla prijorità! U l-varjabbli speċifikati ġewwa .gitlab-ci.yml ma għandhom l-ebda rwol.
Gruppi b'varjabbli
Il-varjabbli tal-grupp għandhom prijorità aktar baxxa.
.gitlab-ci.yml
Ejja nużaw il-fajl mill-eżempju preċedenti. Hawnhekk għal darb'oħra hemm varjabbli speċifikati ġewwa .gitlab-ci.yml, iżda varjabbli ġewwa gruppi għadhom jieħdu preċedenza fuqhom.
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
Riżultat tal-pipeline
- eku:
$ echo $MSG project-3 Job succeeded
- eku b'vars:
$ echo $MSG project-3 Job succeeded
Wirt b'valur vojt [sorsi]
Valur vojt huwa wkoll valur
Valur vojt mhuwiex Null
Gruppi b'varjabbli
.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
Riżultat tal-pipeline
- eku:
$ echo $MSG Job succeeded
- eku b'vars:
$ echo $MSG Job succeeded
Wirt ma jinkludu u gruppi [sorsi]
Hawnhekk se nippruvaw ninkludu l-proġett-2 fil-proġett-3
Gruppi f'dan il-każ għandhom prijorità.
Gruppi b'varjabbli
.gitlab-ci.yml
U ssettja l-varjabbli globalment f'.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'
Riżultat tal-pipeline
- eku:
$ echo $MSG B Job succeeded
- eku b'vars:
$ echo $MSG B Job succeeded
Wirt ma jinkludu [sorsi]
Hawnhekk se nippruvaw ninkludu l-proġett-2 fil-proġett-3.
Bil-kundizzjoni li: la l-gruppi u lanqas il-proġett innifsu ma għandhom xi varjabbli.
Gruppi b'varjabbli
.gitlab-ci.yml
L-istess bħal fl-eżempju preċedenti
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
Riżultat tal-pipeline
- eku:
$ echo $MSG With include .gitlab-ci.yml Job succeeded
- eku b'vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Ir-riżultati huma kif ġej prijoritajiet:
- Varjabbli fl-issettjar tal-proġett
- Varjabbli fi gruppi
- Varjabbli speċifikati strettament ġewwa l-impjiegi (inklużi fajls inklużi)
- Varjabbli globali ġewwa .gitlab-ci.yml
- Varjabbli globali ġewwa inklużi fajls
Konklużjoni
L-aktar punt mhux ovvju huwa li r-regola "aktar ma varjabbli tkun qrib il-kodiċi, aktar tkun importanti" taħdem l-ewwel għal gruppi, u mbagħad l-istess regola għal varjabbli ġewwa .gitlab-ci.yml, iżda biss taħt il-kundizzjoni li l-varjabbli fil-gruppi mhumiex speċifikati.
Sussegwentement, punt importanti huwa li wieħed jifhem li l-ispazju globali għall-.gitlab-ci.yml prinċipali u inkluż huwa komuni. U l-fajl li fih isseħħ l-inklużjoni għandu prijorità.
Sors: www.habr.com