په Gitlab کې تغیرات په څو ځایونو کې تنظیم کیدی شي:
- د ګروپ ترتیباتو کې
- د پروژې په ترتیباتو کې
- دننه .gitlab-ci.yml
پدې حالت کې ، په ګروپ او د پروژې تنظیماتو کې متغیرونه د "فایل" یا "منظم متغیر" په توګه تنظیم کیدی شي او د "محفوظ" او "ماسک" چیک باکسونه چیک کړئ.
راځئ چې د ساده میراث سره پیل وکړو او دا به ورو ورو پیچلي شي.
د لومړیتوبونو وروستی لیست د سند په پای کې موندل کیدی شي.
د ډلو سره میراث [سرچینې]
د ګروپونو څخه متغیرات په میراث کې دي، د دې قاعدې سره چې ګروپ پروژې ته نږدې وي، د هغې ارزښت خورا مهم دی.
د متغیرونو سره ګروپونه
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
د پایپ لاین پایله
$ echo $MSG
B
که متغیر په 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
د خالي ارزښت سره میراث [سرچینې]
یو خالي ارزښت هم یو ارزښت دی
یو خالي ارزښت صفر ندی
د متغیرونو سره ګروپونه
.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