Gitlab-CI inarithi vipi anuwai za mazingira?

Vigezo katika Gitlab vinaweza kuwekwa katika maeneo kadhaa:

  1. Katika mipangilio ya kikundi
  2. Katika mipangilio ya mradi
  3. Ndani ya .gitlab-ci.yml

Katika kesi hii, vigezo katika mipangilio ya kikundi na mradi vinaweza kuwekwa kama "faili" au "tofauti ya mara kwa mara" na uangalie visanduku vya "kilindwa" na "mask".

Gitlab-CI inarithi vipi anuwai za mazingira?

Wacha tuanze na urithi rahisi na polepole itakuwa ngumu zaidi.

Orodha ya mwisho ya viwango vya kipaumbele inaweza kupatikana mwishoni mwa hati.

Urithi na vikundi [vyanzo]

Vigezo kutoka kwa vikundi vinarithiwa, na sheria kwamba karibu kikundi iko kwenye mradi, thamani yake ni muhimu zaidi.

Vikundi vilivyo na vigezo

Gitlab-CI inarithi vipi anuwai za mazingira?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

Matokeo ya bomba

$ echo $MSG
B

Ikiwa utofauti haungebainishwa katika kundi B, basi tungeona thamani A.

Vigeu vya kurithi ndani ya .gitlab-ci.yml [vyanzo]

Kila kitu ni rahisi sana hapa: unaweza kuweka kutofautisha kimataifa, au unaweza kuifuta ndani ya kazi.

Vikundi vilivyo na vigezo

Gitlab-CI inarithi vipi anuwai za mazingira?

.gitlab-ci.yml

Hebu sasa tuunde kazi 2, katika mojawapo tutaonyesha $MSG kwa uwazi.

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

Matokeo ya bomba

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

Urithi wa vikundi na ndani ya .gitlab-ci.yml [vyanzo]

Wacha tujaribu kuchanganya mifano 2 iliyopita. Vigezo vya kikundi huchukua kipaumbele juu ya vigeu vilivyo ndani ya .gitlab-ci.yml.

Vikundi vilivyo na vigezo

Gitlab-CI inarithi vipi anuwai za mazingira?

.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

Matokeo ya bomba

  • mwangwi:
    $ echo $MSG
    Y
    Job succeeded
  • echo na vars:
    $ echo $MSG
    Y
    Job succeeded

Urithi kwa kubainisha vigezo katika mipangilio ya mradi [vyanzo]

Vigezo katika mipangilio ya mradi DAIMA huwa na kipaumbele cha juu zaidi! Na vigeu vilivyobainishwa ndani ya .gitlab-ci.yml havina jukumu lolote.

Vikundi vilivyo na vigezo

Vigezo vya kikundi vina kipaumbele cha chini.
Gitlab-CI inarithi vipi anuwai za mazingira?

.gitlab-ci.yml

Wacha tutumie faili kutoka kwa mfano uliopita. Hapa tena kuna vigeu vilivyobainishwa ndani ya .gitlab-ci.yml, lakini vigeuzo ndani ya vikundi bado vinatanguliwa juu yao.

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

Matokeo ya bomba

  • mwangwi:
    $ echo $MSG
    project-3
    Job succeeded
  • echo na vars:
    $ echo $MSG
    project-3
    Job succeeded

Urithi wenye thamani tupu [vyanzo]

Thamani tupu pia ni thamani
Thamani tupu sio Null

Vikundi vilivyo na vigezo

Gitlab-CI inarithi vipi anuwai za mazingira?

.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

Matokeo ya bomba

  • mwangwi:
    $ echo $MSG
    Job succeeded
  • echo na vars:
    $ echo $MSG
    Job succeeded

Urithi na pamoja na vikundi [vyanzo]

Hapa tutajaribu kujumuisha mradi-2 katika mradi-3
Vikundi katika kesi hii vina kipaumbele.

Vikundi vilivyo na vigezo

Gitlab-CI inarithi vipi anuwai za mazingira?

.gitlab-ci.yml

Na uweke kigezo kimataifa katika .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'

Matokeo ya bomba

  • mwangwi:
    $ echo $MSG
    B
    Job succeeded
  • echo na vars:
    $ echo $MSG
    B
    Job succeeded

Urithi na ni pamoja na [vyanzo]

Hapa tutajaribu kujumuisha mradi-2 katika mradi-3.
Kwa sharti kwamba: hakuna vikundi au mradi wenyewe hauna vigeuzo vyovyote.

Vikundi vilivyo na vigezo

Gitlab-CI inarithi vipi anuwai za mazingira?

.gitlab-ci.yml

Sawa na katika mfano uliopita

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

Matokeo ya bomba

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

Matokeo ni kama ifuatavyo vipaumbele:

  1. Vigezo katika mipangilio ya mradi
  2. Vigezo katika vikundi
  3. Vigezo vilivyoainishwa madhubuti ndani ya kazi (pamoja na faili zilizojumuishwa)
  4. Vigeu vya kimataifa ndani ya .gitlab-ci.yml
  5. Vigeu vya kimataifa ndani ya faili zilizojumuishwa

Hitimisho

Jambo ambalo si dhahiri zaidi ni kwamba kanuni "kadiri kigezo kilivyo karibu na msimbo, ndivyo kilivyo muhimu zaidi" hufanya kazi kwanza kwa vikundi, na kisha kanuni sawa kwa vigeu vilivyo ndani ya .gitlab-ci.yml, lakini chini ya hali tu. kwamba vigezo katika vikundi havijabainishwa.
Ifuatayo, jambo muhimu ni kuelewa kwamba nafasi ya kimataifa kwa kuu na iliyojumuishwa .gitlab-ci.yml ni ya kawaida. Na faili ambayo kuingizwa hutokea ina kipaumbele.

Chanzo: mapenzi.com

Kuongeza maoni