Kepiye carane Gitlab-CI marisi variabel lingkungan?

Variabel ing Gitlab bisa disetel ing sawetara panggonan:

  1. Ing setelan grup
  2. Ing setelan proyek
  3. Nang .gitlab-ci.yml

Ing kasus iki, variabel ing grup lan setelan proyek bisa disetel minangka "file" utawa "variabel reguler" lan mriksa kothak centhang "dilindungi" lan "topeng".

Kepiye carane Gitlab-CI marisi variabel lingkungan?

Ayo diwiwiti kanthi warisan sing sederhana lan bakal dadi luwih rumit.

Dhaptar pungkasan tingkat prioritas bisa ditemokake ing mburi dokumen.

Warisan karo kelompok [sumber]

Variabel saka klompok diwarisake, kanthi aturan yen luwih cedhak klompok kasebut dumunung ing proyek kasebut, luwih penting nilai kasebut.

Klompok kanthi variabel

Kepiye carane Gitlab-CI marisi variabel lingkungan?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

Hasil pipa

$ echo $MSG
B

Yen variabel durung ditemtokake ing grup B, mula kita bakal weruh nilai A.

Warisan variabel nang .gitlab-ci.yml [sumber]

Kabeh iku cukup prasaja ing kene: sampeyan bisa nyetel variabel global, utawa sampeyan bisa nimpa ing proyek.

Klompok kanthi variabel

Kepiye carane Gitlab-CI marisi variabel lingkungan?

.gitlab-ci.yml

Saiki ayo nggawe 2 proyek, ing salah sijine kita bakal nuduhake $ MSG kanthi jelas.

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

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

Warisan karo kelompok lan nang .gitlab-ci.yml [sumber]

Coba gabungke 2 conto sadurunge. Variabel grup diutamakake tinimbang variabel nang .gitlab-ci.yml.

Klompok kanthi variabel

Kepiye carane Gitlab-CI marisi 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

  • kumandhang:
    $ echo $MSG
    Y
    Job succeeded
  • echo karo vars:
    $ echo $MSG
    Y
    Job succeeded

Warisan kanthi nemtokake variabel ing setelan proyek [sumber]

Variabel ing setelan proyek tansah duwe prioritas paling dhuwur! Lan variabel kasebut nang .gitlab-ci.yml ora muter peran sembarang.

Klompok kanthi variabel

Variabel klompok nduweni prioritas sing luwih murah.
Kepiye carane Gitlab-CI marisi variabel lingkungan?

.gitlab-ci.yml

Ayo nggunakake file saka conto sadurunge. Ing kene maneh ana variabel sing ditemtokake ing .gitlab-ci.yml, nanging variabel ing grup isih diutamakake.

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

  • kumandhang:
    $ echo $MSG
    project-3
    Job succeeded
  • echo karo vars:
    $ echo $MSG
    project-3
    Job succeeded

Warisan kanthi nilai kosong [sumber]

Nilai kosong uga minangka nilai
Nilai kosong ora Null

Klompok kanthi variabel

Kepiye carane Gitlab-CI marisi 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

  • kumandhang:
    $ echo $MSG
    Job succeeded
  • echo karo vars:
    $ echo $MSG
    Job succeeded

Warisan karo kalebu lan kelompok [sumber]

Ing kene kita bakal nyoba nyakup proyek-2 ing proyek-3
Klompok ing kasus iki duwe prioritas.

Klompok kanthi variabel

Kepiye carane Gitlab-CI marisi variabel lingkungan?

.gitlab-ci.yml

Lan nyetel variabel global ing .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

  • kumandhang:
    $ echo $MSG
    B
    Job succeeded
  • echo karo vars:
    $ echo $MSG
    B
    Job succeeded

Warisan karo kalebu [sumber]

Ing kene kita bakal nyoba nyakup proyek-2 ing proyek-3.
Kanthi syarat: klompok utawa proyek kasebut ora duwe variabel.

Klompok kanthi variabel

Kepiye carane Gitlab-CI marisi variabel lingkungan?

.gitlab-ci.yml

Padha ing conto sadurunge

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

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

Asile kaya ing ngisor iki prioritas:

  1. Variabel ing setelan proyek
  2. Variabel ing kelompok
  3. Variabel ditemtokake kanthi ketat ing proyek (kalebu file sing kalebu)
  4. Variabel global nang .gitlab-ci.yml
  5. Variabel global ing njero kalebu file

kesimpulan

Titik sing paling ora jelas yaiku aturan "sing luwih cedhak karo variabel kanggo kode, sing luwih penting" dianggo pisanan kanggo grup, banjur aturan sing padha kanggo variabel ing njero .gitlab-ci.yml, nanging mung ing kondisi yen variabel ing grup ora ditemtokake.
Sabanjure, titik penting kanggo mangerteni yen spasi global kanggo utama lan klebu .gitlab-ci.yml iku umum. Lan file sing kalebu kalebu prioritas.

Source: www.habr.com

Add a comment