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 бүлэгт заагаагүй бол бид А утгыг харах байсан.

.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

сэтгэгдэл нэмэх