Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

Ang mga variable sa Gitlab mahimong itakda sa daghang mga lugar:

  1. Sa mga setting sa grupo
  2. Sa mga setting sa proyekto
  3. Sulod sa .gitlab-ci.yml

Sa kini nga kaso, ang mga variable sa grupo ug mga setting sa proyekto mahimong itakda nga "file" o "regular nga variable" ug susihon ang mga checkbox nga "gipanalipdan" ug "maskara".

Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

Magsugod kita sa yano nga kabilin ug kini sa hinay-hinay mahimong labi ka komplikado.

Ang katapusang lista sa mga lebel sa prayoridad makita sa katapusan sa dokumento.

Kabilin uban sa mga grupo [tinubdan]

Ang mga variable gikan sa mga grupo napanunod, uban sa lagda nga ang mas duol nga grupo nahimutang sa proyekto, mas importante ang bili niini.

Mga grupo nga adunay mga variable

Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

Resulta sa pipeline

$ echo $MSG
B

Kung ang variable wala matino sa grupo B, nan nakita namon ang kantidad A.

Pagpanunod sa mga variable sa sulod sa .gitlab-ci.yml [tinubdan]

Ang tanan yano ra dinhi: mahimo nimong itakda ang usa ka variable sa tibuuk kalibutan, o mahimo nimo kini i-overwrite sa sulod sa trabaho.

Mga grupo nga adunay mga variable

Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

.gitlab-ci.yml

Maghimo na kita ug 2 ka trabaho, sa usa niini klaro natong ipakita ang $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

Resulta sa pipeline

  • lanog:
    $ echo $MSG
    Custom in global .gitlab-ci.yml
    Job succeeded
  • echo uban sa mga vars:
    $ echo $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

Kabilin sa mga grupo ug sulod sa .gitlab-ci.yml [tinubdan]

Atong sulayan ang paghiusa sa miaging 2 nga mga pananglitan. Ang mga variable sa grupo nag-una kaysa mga variable sa sulod sa .gitlab-ci.yml.

Mga grupo nga adunay mga variable

Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

.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

Resulta sa pipeline

  • lanog:
    $ echo $MSG
    Y
    Job succeeded
  • echo uban sa mga vars:
    $ echo $MSG
    Y
    Job succeeded

Kabilin nga adunay pagtino sa mga variable sa mga setting sa proyekto [tinubdan]

Ang mga variable sa mga setting sa proyekto KANUNAY adunay labing taas nga prayoridad! Ug ang mga baryable nga gipiho sa sulod sa .gitlab-ci.yml walay papel.

Mga grupo nga adunay mga variable

Ang mga variable sa grupo adunay ubos nga prayoridad.
Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

.gitlab-ci.yml

Atong gamiton ang file gikan sa miaging pananglitan. Dinhi pag-usab adunay mga variable nga gipiho sa sulod sa .gitlab-ci.yml, apan ang mga variable sa sulod sa mga grupo nag-una gihapon kanila.

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

Resulta sa pipeline

  • lanog:
    $ echo $MSG
    project-3
    Job succeeded
  • echo uban sa mga vars:
    $ echo $MSG
    project-3
    Job succeeded

Kabilin nga walay sulod nga bili [tinubdan]

Ang usa ka walay sulod nga bili usa usab ka bili
Ang usa ka walay sulod nga bili dili Null

Mga grupo nga adunay mga variable

Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

.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

Resulta sa pipeline

  • lanog:
    $ echo $MSG
    Job succeeded
  • echo uban sa mga vars:
    $ echo $MSG
    Job succeeded

Kabilin nga adunay naglakip ug mga grupo [tinubdan]

Dinhi atong sulayan nga ilakip ang proyekto-2 sa proyekto-3
Ang mga grupo sa kini nga kaso adunay prayoridad.

Mga grupo nga adunay mga variable

Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

.gitlab-ci.yml

Ug ibutang ang variable sa tibuok kalibutan sa .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'

Resulta sa pipeline

  • lanog:
    $ echo $MSG
    B
    Job succeeded
  • echo uban sa mga vars:
    $ echo $MSG
    B
    Job succeeded

Kabilin uban sa naglakip [tinubdan]

Dinhi atong sulayan nga ilakip ang proyekto-2 sa proyekto-3.
Uban sa kondisyon nga: ni ang mga grupo o ang proyekto mismo adunay bisan unsang mga variable.

Mga grupo nga adunay mga variable

Giunsa pagpanunod sa Gitlab-CI ang mga variable sa palibot?

.gitlab-ci.yml

Parehas sa miaging pananglitan

variables:
 MSG: "With  include  .gitlab-ci.yml"
include:
 - project: how-is-gitlab-ci-inherit-environment-variables/z/y/project-3
   file: '.gitlab-ci.yml'

Resulta sa pipeline

  • lanog:
    $ echo $MSG
    With include .gitlab-ci.yml
    Job succeeded
  • echo uban sa mga vars:
    $ echo $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

Ang mga resulta mao ang mosunod mga prayoridad:

  1. Mga variable sa mga setting sa proyekto
  2. Mga variable sa mga grupo
  3. Ang mga variable estrikto nga gipiho sa sulod sa mga trabaho (lakip na ang mga file)
  4. Global variables sulod sa .gitlab-ci.yml
  5. Ang mga global variable sa sulod naglakip sa mga file

konklusyon

Ang labing dili klaro nga punto mao nga ang lagda nga "ang mas duol sa usa ka variable mao ang code, ang mas importante nga kini mao ang" nagtrabaho una alang sa mga grupo, ug unya ang sama nga lagda alang sa mga variable sulod sa .gitlab-ci.yml, apan lamang ubos sa kondisyon nga ang mga variable sa mga grupo wala gipiho.
Sunod, usa ka hinungdanon nga punto mao ang pagsabut nga ang global nga wanang alang sa panguna ug gilakip nga .gitlab-ci.yml sagad. Ug ang file diin ang paglakip nahitabo adunay prayoridad.

Source: www.habr.com

Idugang sa usa ka comment