Gitlab-CI څنګه د چاپیریال تغیرات میراث کوي؟

په Gitlab کې تغیرات په څو ځایونو کې تنظیم کیدی شي:

  1. د ګروپ ترتیباتو کې
  2. د پروژې په ترتیباتو کې
  3. دننه .gitlab-ci.yml

پدې حالت کې ، په ګروپ او د پروژې تنظیماتو کې متغیرونه د "فایل" یا "منظم متغیر" په توګه تنظیم کیدی شي او د "محفوظ" او "ماسک" چیک باکسونه چیک کړئ.

Gitlab-CI څنګه د چاپیریال تغیرات میراث کوي؟

راځئ چې د ساده میراث سره پیل وکړو او دا به ورو ورو پیچلي شي.

د لومړیتوبونو وروستی لیست د سند په پای کې موندل کیدی شي.

د ډلو سره میراث [سرچینې]

د ګروپونو څخه متغیرات په میراث کې دي، د دې قاعدې سره چې ګروپ پروژې ته نږدې وي، د هغې ارزښت خورا مهم دی.

د متغیرونو سره ګروپونه

Gitlab-CI څنګه د چاپیریال تغیرات میراث کوي؟

.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 څنګه د چاپیریال تغیرات میراث کوي؟

.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 څنګه د چاپیریال تغیرات میراث کوي؟

.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 څنګه د چاپیریال تغیرات میراث کوي؟

.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 څنګه د چاپیریال تغیرات میراث کوي؟

.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 څنګه د چاپیریال تغیرات میراث کوي؟

.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 څنګه د چاپیریال تغیرات میراث کوي؟

.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

پایلې په لاندې ډول دي لومړیتوبونه:

  1. د پروژې په ترتیباتو کې تغیرات
  2. په ګروپونو کې تغیرات
  3. متغیرونه په کلکه د دندو دننه مشخص شوي (د فایلونو په شمول)
  4. د .gitlab-ci.yml دننه نړیوال تغیرات
  5. د شامل فایلونو دننه نړیوال متغیرونه

پایلې

تر ټولو نه څرګند ټکی دا دی چې دا قاعده "څومره چې متغیر کوډ ته نږدې وي، هومره یې مهم وي" لومړی د ډلو لپاره کار کوي، او بیا د gitlab-ci.yml دننه د متغیرونو لپاره ورته قاعده، مګر یوازې د شرایطو لاندې. چې په ګروپونو کې متغیرات نه دي مشخص شوي.
بل، یو مهم ټکی دا دی چې پوه شي چې د اصلي او شامل .gitlab-ci.yml لپاره نړیوال ځای عام دی. او هغه فایل چې پکې شاملول کیږي لومړیتوب لري.

سرچینه: www.habr.com

Add a comment