Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

Gitlabis saab muutujaid mÀÀrata mitmes kohas:

  1. RĂŒhma seadetes
  2. Projektide seadetes
  3. Failis .gitlab-ci.yml

Samas saab rĂŒhma ja projekti seadetes mÀÀrata muutujad kui „fail” vĂ”i „tavaline muutuja” ning mĂ€rkida valikuid „kaitstud” ja „maskeeritud”.

Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

Alustame lihtsast pÀrandamisest ja keerame seda jÀrk-jÀrgult keerulisemaks.

LÔpliku prioriteetide loetelu saab vaadata dokumendi lÔpus.

PĂ€rimine rĂŒhmade abil [allikad]

RĂŒhmades mÀÀratud muutujad pĂ€rinevad, jĂ€rgides reeglit, et mida lĂ€hemal on rĂŒhm projektile, seda olulisem on selle vÀÀrtus.

RĂŒhmad koos muutujaid

Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

Pipelinesi tulemus

$ echo $MSG
B

Kui muutuja poleks rĂŒhmas B mÀÀratud, oleksime nĂ€inud vÀÀrtust A.

Muutujate pÀrimine .gitlab-ci.yml sees [allikad]

Siin on kĂ”ik ĂŒsna lihtne: saad mÀÀrata muutuja globaalsetena vĂ”i kirjutada selle töö sees ĂŒle.

RĂŒhmad koos muutujaid

Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

.gitlab-ci.yml

Loome nĂŒĂŒd 2 tööd, millest ĂŒhes mÀÀrame selgelt $MSG.

image: busybox:latest
variables:
  GIT_STRATEGY: none
  MSG: "Kohandatud globaalses .gitlab-ci.yml"

echo:
  stage: test
  script:
    - echo $MSG

echo with var:
  stage: test
  variables:
    MSG: "Kohandatud töö .gitlab-ci.yml"
  script:
    - echo $MSG

Pipelinesi tulemus

  • echo:
    $ echo $MSG
    Kohandatud globaalsetes .gitlab-ci.yml
    Töö Ônnestus
  • echo koos muutujaid:
    $ echo $MSG
    Kohandatud töö .gitlab-ci.yml
    Töö Ônnestus

PĂ€rimine rĂŒhmadest ja .gitlab-ci.yml sees [allikad]

Proovime ĂŒhendada eelnevaid 2 nĂ€idet. RĂŒhma muutujad on eelised muutuja ĂŒle .gitlab-ci.yml.

RĂŒhmad koos muutujaid

Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none
  MSG: "Kohandatud globaalses .gitlab-ci.yml"

echo:
  stage: test
  script:
    - echo $MSG

echo with var:
  stage: test
  variables:
    MSG: "Kohandatud töö .gitlab-ci.yml"
  script:
    - echo $MSG

Pipelinesi tulemus

  • echo:
    $ echo $MSG
    Y
    Töö Ônnestus
  • echo koos muutujaid:
    $ echo $MSG
    Y
    Töö Ônnestus

Muutujate pÀrimine projekti seadetes [allikad]

Muutujad projekti seadetes on ALATI kÔrgeima prioriteediga! Ja .gitlab-ci.yml sees mÀÀratud muutujatel pole mingit rolli.

RĂŒhmad koos muutujaid

RĂŒhma muutujatel on madalam prioriteet.
Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

.gitlab-ci.yml

Kasutame eelnevas nĂ€ites olevaid faile. Siin on jĂ€lle muutujad, mis on mÀÀratud .gitlab-ci.yml sees, kuid rĂŒhmade muutujatel on endiselt nende ees prioriteet.

image: busybox:latest
variables:
  GIT_STRATEGY: none
  MSG: "Kohandatud globaalses .gitlab-ci.yml"

echo:
  stage: test
  script:
    - echo $MSG

echo with var:
  stage: test
  variables:
    MSG: "Kohandatud töö .gitlab-ci.yml"
  script:
    - echo $MSG

Pipelinesi tulemus

  • echo:
    $ echo $MSG
    projekt-3
    Töö Ônnestus
  • echo koos muutujaid:
    $ echo $MSG
    projekt-3
    Töö Ônnestus

PĂ€rimine tĂŒhja vÀÀrtusega [allikad]

TĂŒhi vÀÀrtus on samuti vÀÀrtus
TĂŒhi vÀÀrtus ei ole Null

RĂŒhmad koos muutujaid

Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none
  MSG: "Kohandatud globaalses .gitlab-ci.yml"

echo:
  stage: test
  script:
    - echo $MSG

echo with var:
  stage: test
  variables:
    MSG: "Kohandatud töö .gitlab-ci.yml"
  script:
    - echo $MSG

Pipelinesi tulemus

  • echo:
    $ echo $MSG
    Töö Ônnestus
  • echo koos muutujaid:
    $ echo $MSG
    Töö Ônnestus

PĂ€rimine lisamise ja rĂŒhmadega [allikad]

Siin proovime project-2-sse lisada project-3
RĂŒhmadel on sel juhul prioriteet.

RĂŒhmad koos muutujaid

Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

.gitlab-ci.yml

Ja mÀÀrame muutuja globaalset .gitlab-ci.yml

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

Pipelinesi tulemus

  • echo:
    $ echo $MSG
    B
    Töö Ônnestus
  • echo koos muutujaid:
    $ echo $MSG
    B
    Töö Ônnestus

PĂ€rimine lisamisega [allikad]

Siin proovime project-2-sse sisse tuua project-3.
Eeldusel, et ei rĂŒhmadel ega projektil endal ei ole mingeid muutujaid.

RĂŒhmad koos muutujaid

Kuidas Gitlab-CI pÀrib keskkonnamuutujaid?

.gitlab-ci.yml

Sama nagu eelnevas nÀites

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

Pipelinesi tulemus

  • echo:
    $ echo $MSG
    Include .gitlab-ci.yml
    Töö Ônnestus
  • echo koos muutujaid:
    $ echo $MSG
    Kohandatud töö .gitlab-ci.yml
    Töö Ônnestus

Saame jÀrgmised prioriteedid:

  1. Muutujad projekti seadetes
  2. Muutujad rĂŒhmades
  3. Töös rangelt mÀÀratletud muutujad (kaasa arvatud sisse toodud failid)
  4. Globaalsete muutujate vÀÀrtused .gitlab-ci.yml failis
  5. Globaalsete muutujate vÀÀrtused sisse toodud failides

KokkuvÔte

KĂ”ige vĂ€hem ilmne moment on see, et reegel «mida lĂ€hemal muutuja koodile, seda olulisem» kehtib kĂ”igepealt rĂŒhmade jaoks ja seejĂ€rel kehtib sama reegel ka .gitlab-ci.yml failide muutujate kohta, kuid tingimusel, et rĂŒhmades ei ole muutujaid mÀÀratletud.
Edasi on oluline mĂ”ista, et globaalne ruum pĂ”hifaili ja sisse toodud .gitlab-ci.yml jaoks on ĂŒhine. Ja see fail, kuhu sisse tuuakse, omab prioriteeti.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster