Gitlab-CI ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

Gitlab ನಲ್ಲಿನ ಅಸ್ಥಿರಗಳನ್ನು ಹಲವಾರು ಸ್ಥಳಗಳಲ್ಲಿ ಹೊಂದಿಸಬಹುದು:

  1. ಗುಂಪು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ
  2. ಯೋಜನೆಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ
  3. ಒಳಗೆ .gitlab-ci.yml

ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಗುಂಪು ಮತ್ತು ಯೋಜನೆಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿನ ಅಸ್ಥಿರಗಳನ್ನು "ಫೈಲ್" ಅಥವಾ "ನಿಯಮಿತ ವೇರಿಯಬಲ್" ಎಂದು ಹೊಂದಿಸಬಹುದು ಮತ್ತು "ರಕ್ಷಿತ" ಮತ್ತು "ಮಾಸ್ಕ್" ಚೆಕ್‌ಬಾಕ್ಸ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.

Gitlab-CI ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

ಸರಳವಾದ ಆನುವಂಶಿಕತೆಯಿಂದ ಪ್ರಾರಂಭಿಸೋಣ ಮತ್ತು ಅದು ಕ್ರಮೇಣ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗುತ್ತದೆ.

ಆದ್ಯತೆಯ ಹಂತಗಳ ಅಂತಿಮ ಪಟ್ಟಿಯನ್ನು ಡಾಕ್ಯುಮೆಂಟ್‌ನ ಕೊನೆಯಲ್ಲಿ ಕಾಣಬಹುದು.

ಗುಂಪುಗಳೊಂದಿಗೆ ಆನುವಂಶಿಕತೆ [ಮೂಲಗಳು]

ಗುಂಪುಗಳಿಂದ ವೇರಿಯಬಲ್‌ಗಳು ಆನುವಂಶಿಕವಾಗಿರುತ್ತವೆ, ಗುಂಪು ಯೋಜನೆಗೆ ಹತ್ತಿರದಲ್ಲಿದೆ ಎಂಬ ನಿಯಮದೊಂದಿಗೆ, ಅದರ ಮೌಲ್ಯವು ಹೆಚ್ಚು ಮುಖ್ಯವಾಗಿದೆ.

ಅಸ್ಥಿರಗಳೊಂದಿಗೆ ಗುಂಪುಗಳು

Gitlab-CI ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

.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 ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

.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 ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

.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 ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

.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 ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

.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 ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

.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 ಪರಿಸರ ಅಸ್ಥಿರಗಳನ್ನು ಹೇಗೆ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ?

.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

ಫಲಿತಾಂಶಗಳು ಈ ಕೆಳಗಿನಂತಿವೆ ಆದ್ಯತೆಗಳು:

  1. ಪ್ರಾಜೆಕ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಅಸ್ಥಿರ
  2. ಗುಂಪುಗಳಲ್ಲಿ ಅಸ್ಥಿರ
  3. ಉದ್ಯೋಗಗಳಲ್ಲಿ ಕಟ್ಟುನಿಟ್ಟಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅಸ್ಥಿರಗಳು (ಸೇರಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ)
  4. .gitlab-ci.yml ಒಳಗೆ ಜಾಗತಿಕ ವೇರಿಯಬಲ್‌ಗಳು
  5. ಒಳಗೊಂಡಿರುವ ಫೈಲ್‌ಗಳ ಒಳಗೆ ಜಾಗತಿಕ ಅಸ್ಥಿರಗಳು

ತೀರ್ಮಾನಕ್ಕೆ

ಹೆಚ್ಚು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲದ ಅಂಶವೆಂದರೆ "ಒಂದು ವೇರಿಯಬಲ್ ಕೋಡ್‌ಗೆ ಹತ್ತಿರವಾಗಿದೆ, ಅದು ಹೆಚ್ಚು ಮುಖ್ಯವಾಗಿದೆ" ಎಂಬ ನಿಯಮವು ಮೊದಲು ಗುಂಪುಗಳಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಮತ್ತು ನಂತರ .gitlab-ci.yml ಒಳಗೆ ವೇರಿಯೇಬಲ್‌ಗಳಿಗೆ ಅದೇ ನಿಯಮ, ಆದರೆ ಷರತ್ತಿನ ಅಡಿಯಲ್ಲಿ ಮಾತ್ರ ಗುಂಪುಗಳಲ್ಲಿನ ಅಸ್ಥಿರಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ.
ಮುಂದೆ, ಮುಖ್ಯ ಮತ್ತು ಒಳಗೊಂಡಿರುವ .gitlab-ci.yml ಗಾಗಿ ಜಾಗತಿಕ ಸ್ಥಳವು ಸಾಮಾನ್ಯವಾಗಿದೆ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಒಂದು ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ಮತ್ತು ಸೇರ್ಪಡೆ ಸಂಭವಿಸುವ ಫೈಲ್ ಆದ್ಯತೆಯನ್ನು ಹೊಂದಿದೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ