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 ๋ด๋ถ ์์ [์ถ์ฒ]
์์ ๋ ๊ฐ์ง ์๋ฅผ ๊ฒฐํฉํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฃน ๋ณ์๋ .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
๋น ๊ฐ์ ์ฌ์ฉํ ์์ [์ถ์ฒ]
๋น ๊ฐ๋ ๊ฐ์
๋๋ค.
๋น ๊ฐ์ Null์ด ์๋๋๋ค.
๋ณ์๊ฐ ์๋ ๊ทธ๋ฃน
.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์ ์ ์ญ ๊ณต๊ฐ์ด ๊ณตํต์ ์ด๋ผ๋ ์ ์ ์ดํดํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ํฌํจ์ด ๋ฐ์ํ ํ์ผ์ด ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋๋ค.
์ถ์ฒ : habr.com