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