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 የተካተተው ዓለም አቀፋዊ ቦታ የተለመደ መሆኑን መረዳት ነው. እና ማካተት ያለበት ፋይል ቅድሚያ አለው.

ምንጭ: hab.com

አስተያየት ያክሉ