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
рдЕрдм реи рд╡рдЯрд╛ рд░реЛрдЬрдЧрд╛рд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ, рддреА рдордзреНрдпреЗ рдПрдЙрдЯрд╛рдорд╛ рд╣рд╛рдореА рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ $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