Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

Gellir gosod newidynnau yn Gitlab mewn sawl man:

  1. Mewn gosodiadau grŵp
  2. Yn y gosodiadau prosiect
  3. Y tu mewn i .gitlab-ci.yml

Yn yr achos hwn, gellir gosod newidynnau yn y gosodiadau grŵp a phrosiect fel “ffeil” neu “newidyn rheolaidd” a gwirio'r blychau ticio “gwarchodedig” a “mwgwd”.

Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

Gadewch i ni ddechrau gydag etifeddiaeth syml a bydd yn dod yn fwy cymhleth yn raddol.

Mae'r rhestr derfynol o lefelau blaenoriaeth i'w gweld ar ddiwedd y ddogfen.

Etifeddiaeth gyda grwpiau [ffynhonnell]

Mae newidynnau o grwpiau yn cael eu hetifeddu, gyda'r rheol mai'r agosaf y lleolir y grŵp at y prosiect, y pwysicaf yw ei werth.

Grwpiau gyda newidynnau

Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

Canlyniad piblinell

$ echo $MSG
B

Pe na bai’r newidyn wedi’i nodi yng ngrŵp B, yna byddem wedi gweld y gwerth A.

Etifeddu newidynnau y tu mewn i .gitlab-ci.yml [ffynhonnell]

Mae popeth yn eithaf syml yma: gallwch chi osod newidyn yn fyd-eang, neu gallwch ei drosysgrifo y tu mewn i'r swydd.

Grwpiau gyda newidynnau

Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

.gitlab-ci.yml

Gadewch i ni nawr greu 2 swydd, yn un ohonyn nhw byddwn yn nodi $MSG yn benodol.

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

Canlyniad piblinell

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

Etifeddiaeth gyda grwpiau a thu mewn .gitlab-ci.yml [ffynhonnell]

Gadewch i ni geisio cyfuno'r 2 enghraifft flaenorol. Mae newidynnau grŵp yn cael blaenoriaeth dros newidynnau y tu mewn i .gitlab-ci.yml.

Grwpiau gyda newidynnau

Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

.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

Canlyniad piblinell

  • adlais:
    $ echo $MSG
    Y
    Job succeeded
  • adlais gyda vars:
    $ echo $MSG
    Y
    Job succeeded

Etifeddiaeth gyda nodi newidynnau mewn gosodiadau prosiect [ffynhonnell]

Newidynnau mewn gosodiadau prosiect BOB AMSER sydd â'r flaenoriaeth uchaf! Ac nid yw'r newidynnau a nodir y tu mewn i .gitlab-ci.yml yn chwarae unrhyw rôl.

Grwpiau gyda newidynnau

Mae gan newidynnau grŵp flaenoriaeth is.
Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

.gitlab-ci.yml

Gadewch i ni ddefnyddio'r ffeil o'r enghraifft flaenorol. Yma eto mae newidynnau wedi'u nodi y tu mewn i .gitlab-ci.yml, ond mae newidynnau o fewn grwpiau yn dal i gael blaenoriaeth drostynt.

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

Canlyniad piblinell

  • adlais:
    $ echo $MSG
    project-3
    Job succeeded
  • adlais gyda vars:
    $ echo $MSG
    project-3
    Job succeeded

Etifeddiaeth gyda gwerth gwag [ffynhonnell]

Mae gwerth gwag hefyd yn werth
Nid Nwl yw gwerth gwag

Grwpiau gyda newidynnau

Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

.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

Canlyniad piblinell

  • adlais:
    $ echo $MSG
    Job succeeded
  • adlais gyda vars:
    $ echo $MSG
    Job succeeded

Etifeddiaeth gyda chynnwys a grwpiau [ffynhonnell]

Yma byddwn yn ceisio cynnwys prosiect-2 ym mhrosiect-3
Rhoddir blaenoriaeth i grwpiau yn yr achos hwn.

Grwpiau gyda newidynnau

Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

.gitlab-ci.yml

A gosod y newidyn yn fyd-eang yn .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'

Canlyniad piblinell

  • adlais:
    $ echo $MSG
    B
    Job succeeded
  • adlais gyda vars:
    $ echo $MSG
    B
    Job succeeded

Etifeddiaeth gyda chynnwys [ffynhonnell]

Yma byddwn yn ceisio cynnwys prosiect-2 ym mhrosiect-3.
Gyda'r amod: nad oes gan y grwpiau na'r prosiect ei hun unrhyw newidynnau.

Grwpiau gyda newidynnau

Sut mae Gitlab-CI yn etifeddu newidynnau amgylchedd?

.gitlab-ci.yml

Yr un fath ag yn yr enghraifft flaenorol

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

Canlyniad piblinell

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

Mae'r canlyniadau fel a ganlyn blaenoriaethau:

  1. Newidynnau mewn gosodiadau prosiect
  2. Newidynnau mewn grwpiau
  3. Newidynnau a nodir yn llym y tu mewn i swyddi (gan gynnwys ffeiliau wedi'u cynnwys)
  4. Newidynnau byd-eang y tu mewn i .gitlab-ci.yml
  5. Roedd newidynnau byd-eang y tu mewn i'r ffeiliau wedi'u cynnwys

Casgliad

Y pwynt mwyaf nad yw'n amlwg yw bod y rheol “po agosaf y mae newidyn i'r cod, y pwysicaf ydyw” yn gweithio'n gyntaf ar gyfer grwpiau, ac yna'r un rheol ar gyfer newidynnau y tu mewn i .gitlab-ci.yml, ond dim ond o dan yr amod nad yw'r newidynnau yn y grwpiau wedi'u nodi .
Nesaf, pwynt pwysig yw deall bod y gofod byd-eang ar gyfer y prif a chynnwys .gitlab-ci.yml yn gyffredin. Ac mae gan y ffeil y mae'r cynhwysiant ynddi flaenoriaeth.

Ffynhonnell: hab.com

Ychwanegu sylw