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

Эгерде өзгөрмө В тобунда көрсөтүлбөсө, анда биз А маанисин көрмөкпүз.

.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
  • echo with 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
  • echo with 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
  • echo with 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
  • echo with 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
  • echo with 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
  • echo with 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 үчүн глобалдык мейкиндик жалпы экенин түшүнүү болуп саналат. Жана кошулуу пайда болгон файл артыкчылыкка ээ.

Source: www.habr.com

Комментарий кошуу