Gitlab ۾ variables ڪيترن ئي هنڌن تي مقرر ڪري سگهجي ٿو:
- گروپ سيٽنگون ۾
- پروجيڪٽ سيٽنگون ۾
- اندر .gitlab-ci.yml
انهي صورت ۾، گروپ ۽ پروجيڪٽ سيٽنگن ۾ متغير کي "فائل" يا "باقاعده متغير" طور مقرر ڪري سگهجي ٿو ۽ چيڪ ڪريو "محفوظ" ۽ "ماسڪ" چيڪ بڪس.
اچو ته سادي وراثت سان شروع ڪريون ۽ اهو آهستي آهستي وڌيڪ پيچيده ٿي ويندو.
ترجيحي سطحن جي حتمي فهرست دستاويز جي آخر ۾ ڳولهي سگھجي ٿي.
گروهن سان وراثت [ذريعو]
گروهن مان متغيرات وراثت ۾ مليا آهن، ضابطي سان ته گروپ جي ويجهو آهي پروجيڪٽ جي ويجهو، ان جي اهميت وڌيڪ اهم آهي.
متغير سان گروپ
gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
پائپ لائن جو نتيجو
$ echo $MSG
B
جيڪڏهن متغير گروپ بي ۾ بيان نه ڪيو ويو هجي، ته پوء اسان کي قدر A ڏٺو وڃي ها.
.gitlab-ci.yml جي اندر وراثت متغير [ذريعو]
هتي هر شي بلڪل سادو آهي: توهان عالمي سطح تي هڪ متغير مقرر ڪري سگهو ٿا، يا توهان ان کي نوڪري جي اندر مٿي ڪري سگهو ٿا.
متغير سان گروپ
gitlab-ci.yml
اچو ته ھاڻي 2 نوڪريون ٺاھيون، انھن مان ھڪڙي ۾ اسين واضح طور تي $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
پائپ لائن جو نتيجو
- گونج:
$ echo $MSG Custom in global .gitlab-ci.yml Job succeeded
- vars سان گونج:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
گروپن سان وراثت ۽ اندر .gitlab-ci.yml [ذريعو]
اچو ته پوئين 2 مثالن کي گڏ ڪرڻ جي ڪوشش ڪريو. گروپ متغير .gitlab-ci.yml جي اندر متغيرن تي ترجيح ڏين ٿا.
متغير سان گروپ
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
پائپ لائن جو نتيجو
- گونج:
$ echo $MSG Y Job succeeded
- vars سان گونج:
$ echo $MSG Y Job succeeded
پروجيڪٽ سيٽنگن ۾ متغير بيان ڪرڻ سان وراثت [ذريعو]
پروجيڪٽ سيٽنگن ۾ متغيرن کي هميشه اعليٰ ترجيح آهي! ۽ .gitlab-ci.yml جي اندر بيان ڪيل متغير ڪوبه ڪردار ادا نه ڪندا آهن.
متغير سان گروپ
گروپ متغيرن کي گھٽ ترجيح آھي.
gitlab-ci.yml
اچو ته اڳئين مثال مان فائل استعمال ڪريون. هتي وري .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
پائپ لائن جو نتيجو
- گونج:
$ echo $MSG project-3 Job succeeded
- vars سان گونج:
$ echo $MSG project-3 Job succeeded
خالي قيمت سان وراثت [ذريعو]
هڪ خالي قدر پڻ هڪ قدر آهي
هڪ خالي قدر Null نه آهي
متغير سان گروپ
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
پائپ لائن جو نتيجو
- گونج:
$ echo $MSG Job succeeded
- vars سان گونج:
$ echo $MSG Job succeeded
شامل ۽ گروپن سان وراثت [ذريعو]
هتي اسان ڪوشش ڪنداسين ته پروجيڪٽ-2 کي پروجيڪٽ-3 ۾ شامل ڪيو وڃي
هن معاملي ۾ گروپن کي ترجيح آهي.
متغير سان گروپ
gitlab-ci.yml
۽ .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'
پائپ لائن جو نتيجو
- گونج:
$ echo $MSG B Job succeeded
- vars سان گونج:
$ echo $MSG B Job succeeded
وراثت سان گڏ [ذريعو]
هتي اسان ڪوشش ڪنداسين ته پروجيڪٽ-2 کي پروجيڪٽ-3 ۾ شامل ڪيو وڃي.
ان شرط سان ته: نه ئي گروهه ۽ نه ئي پروجيڪٽ پاڻ ۾ ڪي متغير آهن.
متغير سان گروپ
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'
پائپ لائن جو نتيجو
- گونج:
$ echo $MSG With include .gitlab-ci.yml Job succeeded
- vars سان گونج:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
نتيجا هن ريت آهن ترجيحات:
- پروجيڪٽ سيٽنگون ۾ متغير
- گروپن ۾ متغير
- متغير سختي سان بيان ڪيل نوڪريون (بشمول فائلون شامل آهن)
- گلوبل متغير اندر اندر .gitlab-ci.yml
- شامل فائلن اندر گلوبل متغير
ٿڪل
سڀ کان وڌيڪ واضح نقطو اهو آهي ته اهو قاعدو ”ڪوڊ جي ويجهو هڪ متغير آهي، اهو وڌيڪ اهم آهي“ پهرين گروپن لاءِ ڪم ڪري ٿو، ۽ پوءِ ساڳيو قاعدو .gitlab-ci.yml جي اندر متغيرن لاءِ، پر صرف شرط هيٺ. ته گروپن ۾ متغير بيان نه ڪيا ويا آهن.
اڳيون، هڪ اهم نقطو سمجهڻ آهي ته مکيه ۽ شامل .gitlab-ci.yml لاء عالمي خلا عام آهي. ۽ فائل جنهن ۾ شامل ٿئي ٿي ان کي ترجيح ڏني وئي آهي.
جو ذريعو: www.habr.com