Kumaha carana Gitlab-CI inherit variabel lingkungan?

Variabel dina Gitlab tiasa disetél dina sababaraha tempat:

  1. Dina setélan grup
  2. Dina setélan proyék
  3. Di jero .gitlab-ci.yml

Dina hal ieu, variabel dina grup sareng setélan proyék tiasa disetél salaku "file" atanapi "variabel biasa" sareng pariksa kotak centang "ditangtayungan" sareng "topeng".

Kumaha carana Gitlab-CI inherit variabel lingkungan?

Hayu urang mimitian ku warisan basajan tur laun bakal jadi leuwih kompleks.

Daptar ahir tingkat prioritas tiasa dipendakan di tungtung dokumen.

Warisan jeung grup [sumber]

Variabel ti grup diwariskeun, kalayan aturan yén leuwih deukeut grup lokasina ka proyék, anu leuwih penting nilaina.

Grup jeung variabel

Kumaha carana Gitlab-CI inherit variabel lingkungan?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

Hasil pipa

$ echo $MSG
B

Lamun variabel teu acan dieusian dina grup B, urang bakal geus katempo nilai A.

Inheriting variabel jero .gitlab-ci.yml [sumber]

Sadayana cukup saderhana di dieu: anjeun tiasa nyetél variabel sacara global, atanapi anjeun tiasa nimpa di jero padamelan.

Grup jeung variabel

Kumaha carana Gitlab-CI inherit variabel lingkungan?

.gitlab-ci.yml

Hayu urang ayeuna nyiptakeun 2 padamelan, dina salah sahijina urang sacara eksplisit nunjukkeun $ 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

Hasil pipa

  • gema:
    $ echo $MSG
    Custom in global .gitlab-ci.yml
    Job succeeded
  • echo kalawan vars:
    $ echo $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

Warisan jeung grup na jero .gitlab-ci.yml [sumber]

Hayu urang coba ngagabungkeun 2 conto saméméhna. variabel Grup nyokot precedence leuwih variabel jero .gitlab-ci.yml.

Grup jeung variabel

Kumaha carana Gitlab-CI inherit variabel lingkungan?

.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

Hasil pipa

  • gema:
    $ echo $MSG
    Y
    Job succeeded
  • echo kalawan vars:
    $ echo $MSG
    Y
    Job succeeded

Warisan sareng nangtukeun variabel dina setélan proyék [sumber]

Variabel dina setélan proyék SELALU ngagaduhan prioritas pangluhurna! Jeung variabel dieusian jero .gitlab-ci.yml teu maénkeun peran nanaon.

Grup jeung variabel

Variabel grup boga prioritas handap.
Kumaha carana Gitlab-CI inherit variabel lingkungan?

.gitlab-ci.yml

Hayu urang nganggo file tina conto sateuacana. Di dieu deui aya variabel dieusian di jero .gitlab-ci.yml, tapi variabel jero grup masih nyokot precedence leuwih aranjeunna.

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

Hasil pipa

  • gema:
    $ echo $MSG
    project-3
    Job succeeded
  • echo kalawan vars:
    $ echo $MSG
    project-3
    Job succeeded

Warisan kalawan nilai kosong [sumber]

Hiji nilai kosong oge nilai a
Hiji nilai kosong teu Null

Grup jeung variabel

Kumaha carana Gitlab-CI inherit variabel lingkungan?

.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

Hasil pipa

  • gema:
    $ echo $MSG
    Job succeeded
  • echo kalawan vars:
    $ echo $MSG
    Job succeeded

Warisan kalawan kaasup jeung grup [sumber]

Di dieu urang bakal nyobian ngalebetkeun proyék-2 dina proyék-3
Grup dina hal ieu boga prioritas.

Grup jeung variabel

Kumaha carana Gitlab-CI inherit variabel lingkungan?

.gitlab-ci.yml

Tur nyetel variabel global dina .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'

Hasil pipa

  • gema:
    $ echo $MSG
    B
    Job succeeded
  • echo kalawan vars:
    $ echo $MSG
    B
    Job succeeded

Warisan kalawan ngawengku [sumber]

Di dieu urang bakal nyobian ngalebetkeun proyék-2 dina proyék-3.
Kalayan kaayaan éta: boh grup atanapi proyék éta sorangan henteu ngagaduhan variabel.

Grup jeung variabel

Kumaha carana Gitlab-CI inherit variabel lingkungan?

.gitlab-ci.yml

Sarua jeung conto saméméhna

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

Hasil pipa

  • gema:
    $ echo $MSG
    With include .gitlab-ci.yml
    Job succeeded
  • echo kalawan vars:
    $ echo $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

Hasilna kieu prioritas:

  1. Variabel dina setélan proyék
  2. Variabel dina grup
  3. Variabel anu ditetepkeun sacara ketat di jero padamelan (kalebet file anu kalebet)
  4. Variabel global jero .gitlab-ci.yml
  5. Variabel global di jero kalebet file

kacindekan

Titik paling teu atra nyaéta yén aturan "nu ngadeukeutan variabel hiji kode, nu leuwih penting éta" jalan kahiji pikeun grup, lajeng aturan anu sarua pikeun variabel jero .gitlab-ci.yml, tapi ngan dina kaayaan yén variabel dina grup teu dieusian.
Salajengna, hiji titik penting pikeun ngarti yén spasi global pikeun utama jeung kaasup .gitlab-ci.yml geus ilahar. Jeung file nu citakan lumangsung boga prioritas.

sumber: www.habr.com

Tambahkeun komentar