Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

Gitlabis saab muutujaid mÀÀrata mitmes kohas:

  1. Grupi seadetes
  2. Projektiseadetes
  3. Failis .gitlab-ci.yml

Gruppide ja projektide seadetes saab muutujaid mÀÀrata kui „fail“ vĂ”i „tavaline muutuja“ ning valida kastid „kaitstud“ ja „maskida”.

Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

Alustame lihtsast pÀrandamisest ja raskendame jÀrk-jÀrgult.

LÔplikku prioriteedi tasemete loendit saab vaadata dokumendi lÔpus.

PĂ€randamine gruppide kaudu [source files]

RĂŒhmadest pĂ€rinevad muutujaid rakendatakse reegli jĂ€rgi, et mida lĂ€hemal on grupp projektile, seda tĂ€htsam on selle vÀÀrtus.

Muutujatega grupid

Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

Pipeliini tulemus

$ echo $MSG
B

Kui muutujat ei oleks mÀÀratud grupis B, oleksime nÀinud vÀÀrtust A.

Muudatused muutuja pÀrimises failis .gitlab-ci.yml [source files]

Siin on kĂ”ik ĂŒsna lihtne: saab mÀÀrata globaalse muutuja vĂ”i kirjutada selle ĂŒmber töö sees.

Muutujatega grupid

Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

.gitlab-ci.yml

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

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

echo:
  stage: test
  script:
    - echo $MSG

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

Pipeliini tulemus

  • echo:
    $ echo $MSG
    Kohandatud globaalne .gitlab-ci.yml
    Töö Ônnestus
  • echo with vars:
    $ echo $MSG
    Kohandatud töö .gitlab-ci.yml
    Töö Ônnestus

PĂ€randamine gruppide kaudu ja faili .gitlab-ci.yml sees [source files]

Proovime kombineerida eelnevaid 2 nÀidet. Gruppide muutujad on eelistatud vÔrreldes muudatustega failis .gitlab-ci.yml.

Muutujatega grupid

Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

.gitlab-ci.yml

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

echo:
  stage: test
  script:
    - echo $MSG

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

Pipeliini tulemus

  • echo:
    $ echo $MSG
    Y
    Töö Ônnestus
  • echo with vars:
    $ echo $MSG
    Y
    Töö Ônnestus

PÀrandamine projektide seadetes mÀÀratud muutujatega [source files]

Projektide seadetes mÀÀratud muutujad on ALATI kÔige kÔrgema prioriteediga! Ja failis .gitlab-ci.yml mÀÀratud muutujatel ei ole mingit tÀhtsust.

Muutujatega grupid

Grupi muutujatel on madalam prioriteet.
Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

.gitlab-ci.yml

Kasutame eelnevas nÀites olevat faili. Siin on taas kohal muutujad failis .gitlab-ci.yml, kuid grupi muutujad on endiselt neist kÔrgema prioriteediga.

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

echo:
  stage: test
  script:
    - echo $MSG

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

Pipeliini tulemus

  • echo:
    $ echo $MSG
    project-3
    Töö Ônnestus
  • echo with vars:
    $ echo $MSG
    project-3
    Töö Ônnestus

PĂ€randamine tĂŒhja vÀÀrtusega [source files]

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

Muutujatega grupid

Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

.gitlab-ci.yml

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

echo:
  stage: test
  script:
    - echo $MSG

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

Pipeliini tulemus

  • echo:
    $ echo $MSG
    Töö Ônnestus
  • echo with vars:
    $ echo $MSG
    Töö Ônnestus

PĂ€randamine koos kaasamise ja gruppidega [source files]

Siin proovime projektis project-2 kaasata project-3
Gruppidel on sel juhul prioriteet.

Muutujatega grupid

Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

.gitlab-ci.yml

Ja mÀÀrame muutuja globaalselt failis .gitlab-ci.yml

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

Pipeliini tulemus

  • echo:
    $ echo $MSG
    B
    Töö Ônnestus
  • echo with vars:
    $ echo $MSG
    B
    Töö Ônnestus

PĂ€randamine koos kaasamisega [source files]

Siin proovime projektis project-2 kaasata project-3.
Kuna tingimusel, et ei rĂŒhm ega projekt ei sisalda muutujaid.

Muutujatega grupid

Kuidas Gitlab-CI pÀrib keskkonnamuutujad?

.gitlab-ci.yml

Sama nagu eelnevas nÀites

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

Pipeliini tulemus

  • echo:
    $ echo $MSG
    Sisaldab .gitlab-ci.yml
    Töö Ônnestus
  • echo with vars:
    $ echo $MSG
    Kohandatud töö .gitlab-ci.yml
    Töö Ônnestus

Saame jÀrgmised prioriteedid:

  1. Muutujad projekti seadetes
  2. Muutujad rĂŒhmades
  3. Muutujad, mis on rangelt mÀÀratud töö sees (kaasa arvatud kaasatud failid)
  4. Globaalne muutujad .gitlab-ci.yml sees
  5. Globaalne muutujad kaasatud failides

KokkuvÔte

Kohaneb kĂ”ige vĂ€hem ilmselge, et reegel 'mida lĂ€hemal muutuja koodile, seda olulisem' kehtib kĂ”igepealt rĂŒhmadele ning seejĂ€rel sama reegel ka .gitlab-ci.yml failides, kuid tingimusel, et rĂŒhmades ei ole muutujaid mÀÀratud.
Oluline koht on ka mĂ”ista, et globaalne ruum pĂ”hjaliku ja kaasatud .gitlab-ci.yml jaoks on ĂŒhisosa. Ja see fail, kuhu toimub kaasamine, omab prioriteeti.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster