Ang mga variable sa Gitlab mahimong itakda sa daghang mga lugar:
- Sa mga setting sa grupo
- Sa mga setting sa proyekto
- Sulod sa .gitlab-ci.yml
Sa kini nga kaso, ang mga variable sa grupo ug mga setting sa proyekto mahimong itakda nga "file" o "regular nga variable" ug susihon ang mga checkbox nga "gipanalipdan" ug "maskara".
Magsugod kita sa yano nga kabilin ug kini sa hinay-hinay mahimong labi ka komplikado.
Ang katapusang lista sa mga lebel sa prayoridad makita sa katapusan sa dokumento.
Kabilin uban sa mga grupo [tinubdan]
Ang mga variable gikan sa mga grupo napanunod, uban sa lagda nga ang mas duol nga grupo nahimutang sa proyekto, mas importante ang bili niini.
Mga grupo nga adunay mga variable
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
Resulta sa pipeline
$ echo $MSG
B
Kung ang variable wala matino sa grupo B, nan nakita namon ang kantidad A.
Pagpanunod sa mga variable sa sulod sa .gitlab-ci.yml [tinubdan]
Ang tanan yano ra dinhi: mahimo nimong itakda ang usa ka variable sa tibuuk kalibutan, o mahimo nimo kini i-overwrite sa sulod sa trabaho.
Mga grupo nga adunay mga variable
.gitlab-ci.yml
Maghimo na kita ug 2 ka trabaho, sa usa niini klaro natong ipakita ang $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
Resulta sa pipeline
- lanog:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded
- echo uban sa mga vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Kabilin sa mga grupo ug sulod sa .gitlab-ci.yml [tinubdan]
Atong sulayan ang paghiusa sa miaging 2 nga mga pananglitan. Ang mga variable sa grupo nag-una kaysa mga variable sa sulod sa .gitlab-ci.yml.
Mga grupo nga adunay mga variable
.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
Resulta sa pipeline
- lanog:
$ echo $MSG Y Job succeeded
- echo uban sa mga vars:
$ echo $MSG Y Job succeeded
Kabilin nga adunay pagtino sa mga variable sa mga setting sa proyekto [tinubdan]
Ang mga variable sa mga setting sa proyekto KANUNAY adunay labing taas nga prayoridad! Ug ang mga baryable nga gipiho sa sulod sa .gitlab-ci.yml walay papel.
Mga grupo nga adunay mga variable
Ang mga variable sa grupo adunay ubos nga prayoridad.
.gitlab-ci.yml
Atong gamiton ang file gikan sa miaging pananglitan. Dinhi pag-usab adunay mga variable nga gipiho sa sulod sa .gitlab-ci.yml, apan ang mga variable sa sulod sa mga grupo nag-una gihapon kanila.
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
Resulta sa pipeline
- lanog:
$ echo $MSG project-3 Job succeeded
- echo uban sa mga vars:
$ echo $MSG project-3 Job succeeded
Kabilin nga walay sulod nga bili [tinubdan]
Ang usa ka walay sulod nga bili usa usab ka bili
Ang usa ka walay sulod nga bili dili Null
Mga grupo nga adunay mga variable
.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
Resulta sa pipeline
- lanog:
$ echo $MSG Job succeeded
- echo uban sa mga vars:
$ echo $MSG Job succeeded
Kabilin nga adunay naglakip ug mga grupo [tinubdan]
Dinhi atong sulayan nga ilakip ang proyekto-2 sa proyekto-3
Ang mga grupo sa kini nga kaso adunay prayoridad.
Mga grupo nga adunay mga variable
.gitlab-ci.yml
Ug ibutang ang variable sa tibuok kalibutan sa .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'
Resulta sa pipeline
- lanog:
$ echo $MSG B Job succeeded
- echo uban sa mga vars:
$ echo $MSG B Job succeeded
Kabilin uban sa naglakip [tinubdan]
Dinhi atong sulayan nga ilakip ang proyekto-2 sa proyekto-3.
Uban sa kondisyon nga: ni ang mga grupo o ang proyekto mismo adunay bisan unsang mga variable.
Mga grupo nga adunay mga variable
.gitlab-ci.yml
Parehas sa miaging pananglitan
variables:
MSG: "With include .gitlab-ci.yml"
include:
- project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
file: '.gitlab-ci.yml'
Resulta sa pipeline
- lanog:
$ echo $MSG With include .gitlab-ci.yml Job succeeded
- echo uban sa mga vars:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
Ang mga resulta mao ang mosunod mga prayoridad:
- Mga variable sa mga setting sa proyekto
- Mga variable sa mga grupo
- Ang mga variable estrikto nga gipiho sa sulod sa mga trabaho (lakip na ang mga file)
- Global variables sulod sa .gitlab-ci.yml
- Ang mga global variable sa sulod naglakip sa mga file
konklusyon
Ang labing dili klaro nga punto mao nga ang lagda nga "ang mas duol sa usa ka variable mao ang code, ang mas importante nga kini mao ang" nagtrabaho una alang sa mga grupo, ug unya ang sama nga lagda alang sa mga variable sulod sa .gitlab-ci.yml, apan lamang ubos sa kondisyon nga ang mga variable sa mga grupo wala gipiho.
Sunod, usa ka hinungdanon nga punto mao ang pagsabut nga ang global nga wanang alang sa panguna ug gilakip nga .gitlab-ci.yml sagad. Ug ang file diin ang paglakip nahitabo adunay prayoridad.
Source: www.habr.com