Gitlab-en aldagaiak hainbat lekutan ezar daitezke:
- Taldearen ezarpenetan
- Proiektuaren ezarpenetan
- .gitlab-ci.yml barruan
Kasu honetan, taldeen eta proiektuaren ezarpenetan aldagaiak "fitxategia" edo "aldagai arrunta" gisa ezar daitezke eta "babestuta" eta "maskara" kontrol-laukiak markatu.
Has gaitezen herentzia sinpletik eta pixkanaka konplexuagoa izango da.
Lehentasun mailen behin betiko zerrenda dokumentuaren amaieran aurki daiteke.
Oinordetza taldeekin [iturriak]
Taldeetako aldagaiak heredatzen dira, eta arauarekin taldea zenbat eta hurbilago egon proiektutik, orduan eta garrantzitsuagoa da haren balioa.
Aldagaiak dituzten taldeak
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
Pipeline emaitza
$ echo $MSG
B
Aldagaia B taldean zehaztu ez balitz, A balioa ikusiko genuke.
.gitlab-ci.yml barruan aldagaiak heredatuz [iturriak]
Hemen dena nahiko erraza da: aldagai bat globalki ezar dezakezu, edo lanaren barruan gainidatzi dezakezu.
Aldagaiak dituzten taldeak
.gitlab-ci.yml
Sor ditzagun orain 2 lanpostu, horietako batean $MSG esplizituki adieraziko dugu.
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
Pipeline emaitza
- oihartzuna:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded
- oihartzuna barietatearekin:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Oinordetza taldeekin eta .gitlab-ci.yml barruan [iturriak]
Saia gaitezen aurreko 2 adibideak konbinatzen. Taldeko aldagaiek lehentasuna dute .gitlab-ci.yml barruko aldagaien aurrean.
Aldagaiak dituzten taldeak
.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
Pipeline emaitza
- oihartzuna:
$ echo $MSG Y Job succeeded
- oihartzuna barietatearekin:
$ echo $MSG Y Job succeeded
Oinordetza proiektuaren ezarpenetan aldagaiak zehaztuz [iturriak]
Proiektuaren ezarpenetan aldagaiek BETI dute lehentasun handiena! Eta .gitlab-ci.yml barruan zehaztutako aldagaiek ez dute inolako funtziorik betetzen.
Aldagaiak dituzten taldeak
Taldeko aldagaiek lehentasun txikiagoa dute.
.gitlab-ci.yml
Erabili dezagun aurreko adibideko fitxategia. Hemen, berriz, .gitlab-ci.yml barruan zehaztutako aldagaiak daude, baina taldeen barruko aldagaiek lehentasuna dute oraindik.
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
Pipeline emaitza
- oihartzuna:
$ echo $MSG project-3 Job succeeded
- oihartzuna barietatearekin:
$ echo $MSG project-3 Job succeeded
Balio hutsa duen herentzia [iturriak]
Balio hutsa ere balio bat da
Balio huts bat ez da Nulua
Aldagaiak dituzten taldeak
.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
Pipeline emaitza
- oihartzuna:
$ echo $MSG Job succeeded
- oihartzuna barietatearekin:
$ echo $MSG Job succeeded
Oinordetza barne eta taldeekin [iturriak]
Hemen saiatuko gara 2 proiektua 3 proiektuan sartzen
Kasu honetan taldeek dute lehentasuna.
Aldagaiak dituzten taldeak
.gitlab-ci.yml
Eta ezarri aldagaia globalki .gitlab-ci.yml-en
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
Pipeline emaitza
- oihartzuna:
$ echo $MSG B Job succeeded
- oihartzuna barietatearekin:
$ echo $MSG B Job succeeded
Oinordetza barne [iturriak]
Hemen saiatuko gara 2 proiektua 3 proiektuan sartzen.
Baldintzarekin: ez taldeek ez proiektuak berak ez dute aldagairik.
Aldagaiak dituzten taldeak
.gitlab-ci.yml
Aurreko adibidean bezala
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
Pipeline emaitza
- oihartzuna:
$ echo $MSG With include .gitlab-ci.yml Job succeeded
- oihartzuna barietatearekin:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Emaitzak hauek dira lehentasunak:
- Aldagaiak proiektuaren ezarpenetan
- Aldagaiak taldeka
- Lanpostuen barruan zorrozki zehazten diren aldagaiak (fitxategiak barne)
- Aldagai globalak .gitlab-ci.yml barruan
- Fitxategi barneko aldagai globalak
Ondorioa
Agerikoena ez den puntua da "aldagai bat kodetik zenbat eta hurbilago egon, orduan eta garrantzitsuagoa da" arauak taldeentzat funtzionatzen duela lehenik, eta, ondoren, arau bera .gitlab-ci.yml barruko aldagaietarako, baina baldintzapean bakarrik. taldeetako aldagaiak zehazten ez direla .
Ondoren, puntu garrantzitsu bat .gitlab-ci.yml nagusi eta barneko espazio globala ohikoa dela ulertzea da. Eta sartzea gertatzen den fitxategiak du lehentasuna.
Iturria: www.habr.com