Gitlabలోని వేరియబుల్స్ అనేక ప్రదేశాలలో సెట్ చేయబడతాయి:
- సమూహ సెట్టింగ్లలో
- ప్రాజెక్ట్ సెట్టింగ్లలో
- లోపల .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
ఫలితాలు ఇలా ఉన్నాయి ప్రాధాన్యతలు:
- ప్రాజెక్ట్ సెట్టింగ్లలో వేరియబుల్స్
- సమూహాలలో వేరియబుల్స్
- ఉద్యోగాల లోపల ఖచ్చితంగా పేర్కొనబడిన వేరియబుల్స్ (చేర్చబడిన ఫైల్లతో సహా)
- .gitlab-ci.yml లోపల గ్లోబల్ వేరియబుల్స్
- ఫైళ్లలో గ్లోబల్ వేరియబుల్స్ ఉన్నాయి
తీర్మానం
చాలా స్పష్టంగా లేని అంశం ఏమిటంటే, "కోడ్కు వేరియబుల్ ఎంత దగ్గరగా ఉంటే, అది చాలా ముఖ్యమైనది" అనే నియమం మొదట సమూహాలకు పనిచేస్తుంది, ఆపై .gitlab-ci.yml లోపల వేరియబుల్స్కు అదే నియమం, కానీ షరతు ప్రకారం మాత్రమే సమూహాలలో వేరియబుల్స్ పేర్కొనబడలేదు.
తర్వాత, ప్రధాన మరియు చేర్చబడిన .gitlab-ci.yml కోసం గ్లోబల్ స్పేస్ సాధారణమని అర్థం చేసుకోవడం ఒక ముఖ్యమైన విషయం. మరియు చేర్చడం జరిగే ఫైల్కు ప్రాధాన్యత ఉంటుంది.
మూలం: www.habr.com