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
- ವರ್ಸ್ ಜೊತೆ ಪ್ರತಿಧ್ವನಿ:
$ 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
- ವರ್ಸ್ ಜೊತೆ ಪ್ರತಿಧ್ವನಿ:
$ 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
- ವರ್ಸ್ ಜೊತೆ ಪ್ರತಿಧ್ವನಿ:
$ 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
- ವರ್ಸ್ ಜೊತೆ ಪ್ರತಿಧ್ವನಿ:
$ 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
- ವರ್ಸ್ ಜೊತೆ ಪ್ರತಿಧ್ವನಿ:
$ 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
- ವರ್ಸ್ ಜೊತೆ ಪ್ರತಿಧ್ವನಿ:
$ echo $MSG Custom in job .gitlab-ci.yml Job succeeded
ಫಲಿತಾಂಶಗಳು ಈ ಕೆಳಗಿನಂತಿವೆ ಆದ್ಯತೆಗಳು:
- ಪ್ರಾಜೆಕ್ಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಅಸ್ಥಿರ
- ಗುಂಪುಗಳಲ್ಲಿ ಅಸ್ಥಿರ
- ಉದ್ಯೋಗಗಳಲ್ಲಿ ಕಟ್ಟುನಿಟ್ಟಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅಸ್ಥಿರಗಳು (ಸೇರಿಸಿದ ಫೈಲ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ)
- .gitlab-ci.yml ಒಳಗೆ ಜಾಗತಿಕ ವೇರಿಯಬಲ್ಗಳು
- ಒಳಗೊಂಡಿರುವ ಫೈಲ್ಗಳ ಒಳಗೆ ಜಾಗತಿಕ ಅಸ್ಥಿರಗಳು
ತೀರ್ಮಾನಕ್ಕೆ
ಹೆಚ್ಚು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲದ ಅಂಶವೆಂದರೆ "ಒಂದು ವೇರಿಯಬಲ್ ಕೋಡ್ಗೆ ಹತ್ತಿರವಾಗಿದೆ, ಅದು ಹೆಚ್ಚು ಮುಖ್ಯವಾಗಿದೆ" ಎಂಬ ನಿಯಮವು ಮೊದಲು ಗುಂಪುಗಳಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಮತ್ತು ನಂತರ .gitlab-ci.yml ಒಳಗೆ ವೇರಿಯೇಬಲ್ಗಳಿಗೆ ಅದೇ ನಿಯಮ, ಆದರೆ ಷರತ್ತಿನ ಅಡಿಯಲ್ಲಿ ಮಾತ್ರ ಗುಂಪುಗಳಲ್ಲಿನ ಅಸ್ಥಿರಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ.
ಮುಂದೆ, ಮುಖ್ಯ ಮತ್ತು ಒಳಗೊಂಡಿರುವ .gitlab-ci.yml ಗಾಗಿ ಜಾಗತಿಕ ಸ್ಥಳವು ಸಾಮಾನ್ಯವಾಗಿದೆ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಒಂದು ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ಮತ್ತು ಸೇರ್ಪಡೆ ಸಂಭವಿಸುವ ಫೈಲ್ ಆದ್ಯತೆಯನ್ನು ಹೊಂದಿದೆ.
ಮೂಲ: www.habr.com