கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

Gitlab இல் உள்ள மாறிகள் பல இடங்களில் அமைக்கப்படலாம்:

  1. குழு அமைப்புகளில்
  2. திட்ட அமைப்புகளில்
  3. உள்ளே .gitlab-ci.yml

இந்த வழக்கில், குழு மற்றும் திட்ட அமைப்புகளில் உள்ள மாறிகள் "கோப்பு" அல்லது "வழக்கமான மாறி" என அமைக்கப்படலாம் மற்றும் "பாதுகாக்கப்பட்ட" மற்றும் "முகமூடி" தேர்வுப்பெட்டிகளை சரிபார்க்கவும்.

கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

எளிமையான பரம்பரையுடன் தொடங்குவோம், அது படிப்படியாக மிகவும் சிக்கலானதாக மாறும்.

முன்னுரிமை நிலைகளின் இறுதிப் பட்டியலை ஆவணத்தின் முடிவில் காணலாம்.

குழுக்களுடன் பரம்பரை [ஆதாரங்கள்]

குழுக்களில் இருந்து மாறிகள் மரபுரிமையாகும், குழுவானது திட்டத்திற்கு நெருக்கமாக அமைந்திருக்கும் விதி, அதன் மதிப்பு மிகவும் முக்கியமானது.

மாறிகள் கொண்ட குழுக்கள்

கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

.gitlab-ci.yml

image: busybox:latest
variables:
  GIT_STRATEGY: none

echo:
  stage: test
  script:
    - echo $MSG

குழாய் முடிவு

$ echo $MSG
B

குழு B இல் மாறி குறிப்பிடப்படவில்லை என்றால், நாம் A மதிப்பைப் பார்த்திருப்போம்.

.gitlab-ci.yml உள்ளே மாறிகளை மரபுவழிப்படுத்துகிறது [ஆதாரங்கள்]

இங்கே எல்லாம் மிகவும் எளிமையானது: நீங்கள் ஒரு மாறியை உலகளவில் அமைக்கலாம் அல்லது வேலையில் அதை மேலெழுதலாம்.

மாறிகள் கொண்ட குழுக்கள்

கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

.gitlab-ci.yml

இப்போது 2 வேலைகளை உருவாக்குவோம், அவற்றில் ஒன்றில் $MSGஐ வெளிப்படையாகக் குறிப்பிடுவோம்.

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

குழாய் முடிவு

  • எதிரொலி:
    $ echo $MSG
    Custom in global .gitlab-ci.yml
    Job succeeded
  • vars உடன் எதிரொலி:
    $ echo $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

குழுக்கள் மற்றும் உள்ளே .gitlab-ci.yml [ஆதாரங்கள்]

முந்தைய 2 எடுத்துக்காட்டுகளை இணைக்க முயற்சிப்போம். குழு மாறிகள் .gitlab-ci.yml உள்ளே மாறிகள் மீது முன்னுரிமை பெறுகின்றன.

மாறிகள் கொண்ட குழுக்கள்

கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

.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

குழாய் முடிவு

  • எதிரொலி:
    $ echo $MSG
    Y
    Job succeeded
  • vars உடன் எதிரொலி:
    $ echo $MSG
    Y
    Job succeeded

திட்ட அமைப்புகளில் மாறிகளைக் குறிப்பிடுவதன் மூலம் பரம்பரை [ஆதாரங்கள்]

திட்ட அமைப்புகளில் உள்ள மாறிகள் எப்போதும் அதிக முன்னுரிமை கொண்டவை! மேலும் .gitlab-ci.yml க்குள் குறிப்பிடப்பட்டுள்ள மாறிகள் எந்தப் பாத்திரத்தையும் வகிக்காது.

மாறிகள் கொண்ட குழுக்கள்

குழு மாறிகளுக்கு குறைந்த முன்னுரிமை உள்ளது.
கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

.gitlab-ci.yml

முந்தைய உதாரணத்திலிருந்து கோப்பைப் பயன்படுத்துவோம். இங்கே மீண்டும் .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

குழாய் முடிவு

  • எதிரொலி:
    $ echo $MSG
    project-3
    Job succeeded
  • vars உடன் எதிரொலி:
    $ echo $MSG
    project-3
    Job succeeded

வெற்று மதிப்பு கொண்ட பரம்பரை [ஆதாரங்கள்]

வெற்று மதிப்பும் ஒரு மதிப்புதான்
வெற்று மதிப்பு பூஜ்யமாக இருக்காது

மாறிகள் கொண்ட குழுக்கள்

கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

.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

குழாய் முடிவு

  • எதிரொலி:
    $ echo $MSG
    Job succeeded
  • vars உடன் எதிரொலி:
    $ echo $MSG
    Job succeeded

உள்ளடக்கிய மற்றும் குழுக்களுடன் பரம்பரை [ஆதாரங்கள்]

இங்கே புராஜெக்ட்-2ஐ ப்ராஜெக்ட்-3ல் சேர்க்க முயற்சிப்போம்
இந்த வழக்கில் குழுக்களுக்கு முன்னுரிமை உள்ளது.

மாறிகள் கொண்ட குழுக்கள்

கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

.gitlab-ci.yml

மற்றும் மாறியை உலகளாவிய அளவில் .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'

குழாய் முடிவு

  • எதிரொலி:
    $ echo $MSG
    B
    Job succeeded
  • vars உடன் எதிரொலி:
    $ echo $MSG
    B
    Job succeeded

உள்ளடக்கிய பரம்பரை [ஆதாரங்கள்]

இங்கே புராஜெக்ட்-2ஐ ப்ராஜெக்ட்-3ல் சேர்க்க முயற்சிப்போம்.
நிபந்தனையுடன்: குழுக்கள் அல்லது திட்டத்தில் எந்த மாறிகளும் இல்லை.

மாறிகள் கொண்ட குழுக்கள்

கிட்லாப்-சிஐ சுற்றுச்சூழல் மாறிகளை எவ்வாறு பெறுகிறது?

.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'

குழாய் முடிவு

  • எதிரொலி:
    $ echo $MSG
    With include .gitlab-ci.yml
    Job succeeded
  • vars உடன் எதிரொலி:
    $ echo $MSG
    Custom in job .gitlab-ci.yml
    Job succeeded

முடிவுகள் பின்வருமாறு முன்னுரிமைகள்:

  1. திட்ட அமைப்புகளில் மாறிகள்
  2. குழுக்களில் மாறிகள்
  3. வேலைகளுக்குள் கண்டிப்பாக குறிப்பிடப்பட்ட மாறிகள் (சேர்க்கப்பட்ட கோப்புகள் உட்பட)
  4. .gitlab-ci.yml உள்ளே உலகளாவிய மாறிகள்
  5. உள்ளடக்கப்பட்ட கோப்புகளுக்குள் உலகளாவிய மாறிகள்

முடிவுக்கு

மிகவும் வெளிப்படையாகத் தெரியாத விஷயம் என்னவென்றால், "ஒரு மாறி குறியீட்டுடன் நெருக்கமாக இருந்தால், அது மிகவும் முக்கியமானது" என்ற விதி முதலில் குழுக்களுக்கு வேலை செய்கிறது, பின்னர் .gitlab-ci.yml உள்ளே இருக்கும் மாறிகளுக்கு அதே விதி, ஆனால் நிபந்தனையின் கீழ் மட்டுமே. குழுக்களில் உள்ள மாறிகள் குறிப்பிடப்படவில்லை.
அடுத்து, முக்கிய மற்றும் உள்ளடக்கப்பட்ட .gitlab-ci.ymlக்கான உலகளாவிய இடம் பொதுவானது என்பதைப் புரிந்துகொள்வது ஒரு முக்கியமான விஷயம். மற்றும் சேர்க்கை நிகழும் கோப்புக்கு முன்னுரிமை உள்ளது.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்