Gitlab-CI ڪيئن وراثت ۾ ماحولياتي متغير آهي؟

Gitlab ۾ variables ڪيترن ئي هنڌن تي مقرر ڪري سگهجي ٿو:

  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

جيڪڏهن متغير گروپ بي ۾ بيان نه ڪيو ويو هجي، ته پوء اسان کي قدر 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

خالي قيمت سان وراثت [ذريعو]

هڪ خالي قدر پڻ هڪ قدر آهي
هڪ خالي قدر Null نه آهي

متغير سان گروپ

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

تبصرو شامل ڪريو