Чӣ тавр 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
  • акси садо бо варҳо:
    $ 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 $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 $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
  • акси садо бо варҳо:
    $ 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 $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 $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

Натичахо чунинанд афзалиятҳо:

  1. Тағирёбандаҳо дар танзимоти лоиҳа
  2. Тағирёбандаҳо дар гурӯҳҳо
  3. Тағирёбандаҳои ба таври қатъӣ дар дохили ҷойҳои корӣ муайяншуда (аз ҷумла файлҳои дохилшуда)
  4. Тағйирёбандаҳои глобалӣ дар дохили .gitlab-ci.yml
  5. Тағирёбандаҳои глобалӣ дар дохили файлҳои дохилшуда

хулоса

Нуктаи аз ҳама равшан ин аст, ки қоидаи "тағйирёбанда ба код наздиктар бошад, ҳамон қадар муҳимтар аст" аввал барои гурӯҳҳо кор мекунад ва сипас ҳамон қоида барои тағирёбандаҳои дохили .gitlab-ci.yml, аммо танҳо дар зери шарт ки тағирёбандаҳо дар гурӯҳҳо муайян карда нашудаанд.
Баъдан, як нуктаи муҳим фаҳмидани он аст, ки фазои глобалӣ барои .gitlab-ci.yml асосӣ ва дохилшуда маъмул аст. Ва файле, ки дар он дохилкунӣ рух медиҳад, афзалият дорад.

Манбаъ: will.com

Илова Эзоҳ