Hægt er að stilla breytur í Gitlab á nokkrum stöðum:
- Í hópstillingum
- Í verkefnastillingum
- Inni í .gitlab-ci.yml
Í þessu tilviki er hægt að stilla breytur í hópnum og verkefnastillingum sem „skrá“ eða „venjuleg breyta“ og haka við „varið“ og „grímu“ gátreitina.
Byrjum á einföldum erfðum og það verður smám saman flóknara.
Lokalistann yfir forgangsstig er að finna í lok skjalsins.
Erfðir með hópum [heimildir]
Breytur úr hópum erfast, með þeirri reglu að því nær sem hópurinn er staðsettur verkefninu, því mikilvægara er gildi hans.
Hópar með breytum
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
Niðurstaða leiðslu
$ echo $MSG
B
Ef breytan hefði ekki verið tilgreind í hópi B, þá hefðum við séð gildið A.
Erfir breytur inni í .gitlab-ci.yml [heimildir]
Allt er frekar einfalt hér: þú getur stillt breytu á heimsvísu, eða þú getur skrifað yfir hana inni í vinnunni.
Hópar með breytum
.gitlab-ci.yml
Við skulum nú búa til 2 störf, í einu þeirra munum við skýrt gefa til kynna $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
Niðurstaða leiðslu
- bergmál:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded
- echo með vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Erfðir með hópum og inni .gitlab-ci.yml [heimildir]
Við skulum reyna að sameina fyrri 2 dæmin. Hópbreytur ganga framar breytum innan .gitlab-ci.yml.
Hópar með breytum
.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
Niðurstaða leiðslu
- bergmál:
$ echo $MSG Y Job succeeded
- echo með vars:
$ echo $MSG Y Job succeeded
Erfðir með því að tilgreina breytur í verkstillingum [heimildir]
Breytur í verkefnastillingum hafa ALLTAF hæsta forgang! Og breyturnar sem tilgreindar eru inni í .gitlab-ci.yml gegna engu hlutverki.
Hópar með breytum
Hópbreytur hafa lægri forgang.
.gitlab-ci.yml
Við skulum nota skrána frá fyrra dæminu. Hér eru aftur tilgreindar breytur inni í .gitlab-ci.yml, en breytur innan hópa hafa samt forgang yfir þær.
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
Niðurstaða leiðslu
- bergmál:
$ echo $MSG project-3 Job succeeded
- echo með vars:
$ echo $MSG project-3 Job succeeded
Erfðir með tómu gildi [heimildir]
Tómt gildi er líka gildi
Tómt gildi er ekki Null
Hópar með breytum
.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
Niðurstaða leiðslu
- bergmál:
$ echo $MSG Job succeeded
- echo með vars:
$ echo $MSG Job succeeded
Erfðir með innihalda og hópa [heimildir]
Hér verður reynt að taka verkefni-2 inn í verkefni-3
Hópar í þessu tilfelli hafa forgang.
Hópar með breytum
.gitlab-ci.yml
Og stilltu breytuna á heimsvísu í .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'
Niðurstaða leiðslu
- bergmál:
$ echo $MSG B Job succeeded
- echo með vars:
$ echo $MSG B Job succeeded
Erfðir með ma [heimildir]
Hér verður reynt að taka verkefni-2 inn í verkefni-3.
Með því skilyrði að: hvorki hóparnir né verkefnið sjálft hafi neinar breytur.
Hópar með breytum
.gitlab-ci.yml
Sama og í fyrra dæminu
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
Niðurstaða leiðslu
- bergmál:
$ echo $MSG With include .gitlab-ci.yml Job succeeded
- echo með vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Úrslitin eru eftirfarandi forgangsröðun:
- Breytur í verkefnastillingum
- Breytur í hópum
- Breytur sem eru stranglega tilgreindar í verkum (þar á meðal skrár sem fylgja með)
- Alþjóðlegar breytur inni í .gitlab-ci.yml
- Alþjóðlegar breytur inni í skrám
Ályktun
Ekki augljósasta atriðið er að reglan „því nær sem breyta er kóðanum, því mikilvægari er hún“ virkar fyrst fyrir hópa, og síðan sama reglan fyrir breytur inni í .gitlab-ci.yml, en aðeins undir skilyrðinu að breyturnar í hópunum séu ekki tilgreindar .
Næst er mikilvægt atriði að skilja að alþjóðlegt rými fyrir aðal og innifalið .gitlab-ci.yml er algengt. Og skráin sem skráningin á sér stað í hefur forgang.
Heimild: www.habr.com