Gitlab рдордзреАрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЕрдиреЗрдХ рдард┐рдХрд╛рдгреА рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд:
- рдЧрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ
- рдкреНрд░рдХрд▓реНрдк рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдордзреНрдпреЗ
- рдЖрдд .gitlab-ci.yml
рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЧрдЯ рдЖрдгрд┐ рдкреНрд░рдХрд▓реНрдк рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреАрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ "рдлрд╛рдЗрд▓" рдХрд┐рдВрд╡рд╛ "рд░реЗрдЧреНрдпреБрд▓рд░ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓" рдореНрд╣рдгреВрди рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ "рд╕рдВрд░рдХреНрд╖рд┐рдд" рдЖрдгрд┐ "рдорд╛рд╕реНрдХ" рдЪреЗрдХрдмреЙрдХреНрд╕ рддрдкрд╛рд╕рд╛.
рдЪрд▓рд╛ рд╕рд╛рдзреНрдпрд╛ рд╡рд╛рд░рд╢рд╛рдиреЗ рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛ рдЖрдгрд┐ рддреЗ рд╣рд│реВрд╣рд│реВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрдИрд▓.
рдкреНрд░рд╛рдзрд╛рдиреНрдп рд╕реНрддрд░рд╛рдВрдЪреА рдЕрдВрддрд┐рдо рдпрд╛рджреА рджрд╕реНрддрдРрд╡рдЬрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдЖрдврд│реВ рд╢рдХрддреЗ.
рдЧрдЯрд╛рдВрд╕рд╣ рд╡рд╛рд░рд╕рд╛ [рд╕реНрд░реЛрдд]
рдЧрдЯрд╛рддреАрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рд░рд╢рд╛рдиреЗ рдорд┐рд│рддрд╛рдд, рдпрд╛ рдирд┐рдпрдорд╛рд╕рд╣ рдХреА рдЧрдЯ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдЬрд┐рддрдХреЗ рдЬрд╡рд│ рдЕрд╕реЗрд▓ рддрд┐рддрдХреЗ рддреНрдпрд╛рдЪреЗ рдореВрд▓реНрдп рдЕрдзрд┐рдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ.
рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╕рд╣ рдЧрдЯ
.gitlab-ci.yml
image: busybox:latest
variables:
GIT_STRATEGY: none
echo:
stage: test
script:
- echo $MSG
рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкрд░рд┐рдгрд╛рдо
$ echo $MSG
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