Github Actions๋ Github Repository์ ์ฐ๋๋์ด ์ํํธ์จ์ด ๋น๋, ํ ์คํธ, ๊ทธ๋ฆฌ๊ณ ๋ฐฐํฌ๊น์ง ์๋ํ ํ ์ ์๋ ๊ฐ๋ ฅํ CI/CD ๋๊ตฌ์ด๋ค.
Jankins | Github Action |
---|---|
์๋ฒ ์ค์น ํ์ | ํด๋ผ์ฐ๋๋ฅผ ์ด์ฉํ ์๋น์ค |
์ ํ์ ์์ฅ์ ๋ฐฐํฌํ๋ ๋ฐ ๋ ๋ง์ ์๊ฐ์ด ์์ | ๋น๋๊ธฐ CI/CD ๋ฌ์ฑ |
๊ณ์ ๋ฐ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ๊นํ๋ธ ์ด๋ฒคํธ๋ฅผ ์ค์ํ์ง ์๋ ๋น๋๋ฅผ ์ค์ฌ์ผ๋ก ํจ | ๋ชจ๋ ๊นํ๋ธ ์ด๋ฒคํธ์ ๋ํ ์์ ์ ์ ๊ณตํ๊ณ ๋ค์ํ ์ธ์ด์ ํ๋ ์ ์ํฌ๋ฅผ ์ง์ํจ |
ํ๊ฒฝ ํธํ์ฑ์ ์ํด ๋์ปค ์ด๋ฏธ์ง์์ ์คํํด์ผ ํจ | ๋ชจ๋ ํ๊ฒฝ๊ณผ ํธํ |
์บ์ฑ ๋งค์ปค๋์ฆ์ ์ง์ํ๊ธฐ ์ํด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ์ ์์ | ์บ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ ์์ฒด ์บ์ฑ ๋งค์ปค๋์ฆ์ ์์ฑํด์ผํจ |
๊ณต์ ๊ธฐ๋ฅ ์์ | ๊นํ ๋ง์ผ ํ๋ ์ด์ค๋ฅผ ํตํด ๊ณต์ ๊ฐ๋ฅ |
์ ์ธ๊ณ์ ๋ง์ ์ด์ฉ์๋ก ์ธํด ๋ฌธ์๊ฐ ๋ค์ํจ | ์ ํจ์ค์ ๋นํด ๋ฌธ์๊ฐ ์์ |
์ ํจ์ค๋ ๋ฌด๋ฃ์ด๊ณ ๋ค์ํ IDE๋ฅผ ์ง์ํ๊ณ ์ปค์คํฐ๋ง์ด์ง์ด ๋ค์ํ๋ค.
ํ์ง๋ง ํธ์คํ
์ ํ๋๋ถํฐ ์ด๊น์ง ๋ชจ๋ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์๊ด๋ฆฌ ๋น์ฉ์ด ๋ฐ์ํ๋ค.
๊นํ๋ธ ์ก์ ์ ๊น์ด ์ ๊ณตํ๋ ์์ ๊ด๋ฆฌํ ์๋น์ค ์ด๋ฏ๋ก ์ธํ๋ผ๋ฅผ ํ์ฅํ๊ณ ์ด์ํ๋ ๋ฐฉ๋ฒ์ ์ ํ์๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๊ณ ํด๋ผ์ฐ๋์์ ์๋ํ๋ค. ํ์ง๋ง ์ฒ๋ฆฌ๋์ด ๋ง์์ง๋ฉด ๋น์ฉ๋ ๋ฐ์ํ๋ค๋ ์ ์ด ์๋ค.
ํ๋ง๋๋ก ๊ท์ฐฎ์ง๋ง ์ธ์ธํ ์ค์ ์ด ๊ฐ๋ฅํ๊ณ ๋ฌด๋ฃ์ธ ์๋น์ค๋ ์ ํจ์ค๊ณ
์ฝ๊ณ ๊ฐํธํ์ง๋ง ์ ๋ฃ์ธ ๊นํ๋ธ ์ก์ ์ ์๋ก ์๋ฐ๋๋ ์ฐจ์ด์ ์ด ์๋ค.
๋จ์ผ ์์ค ๋ ํ์งํ ๋ฆฌ๋ฅผ ์ ์งํด์ผ ํ๋ค.
ํ๋ก์ ํธ์์ ์ ํ์ ๋น๋ํ๊ธฐ ์ํด ํจ๊ป ์กฐ์ ํด์ผ ํ๋ ์ ๋ง์ ํ์ผ์ ํฌํจ๋์ด์ผ ํ๋๋ฐ ๋จ์ผ ์์ค ๋ ํฌ์งํ ๋ฆฌ๊ฐ ์๋ ๊ณณ์ ๋ฟ๋ฟ์ด ํฉ์ด์ ธ ์๋ค๋ฉด ์ถ์ ํ๋ ๊ฒ์ด ๊ต์ฅํ ํ๋ค์ด์ง ๊ฒ์ด๋ค.
๋น๋๋ฅผ ์๋ํ ํด์ผํ๋ค.
๋น๋๊ฐ ์๋์ผ๋ก ์งํ๋๋ฉด ์ ๋ง์ ์ค์๊ฐ ๋ฐ์ํ ๋ฟ๋ง ์๋๋ผ ์ผ์ผ์ด ์๋์ผ๋ก ๋น๋๋ฅผ ํ๋ ๊ฒ์ ์๊ฐ ๋ญ๋น์ด๋ค.
์
ํ ํ
์คํ
๋น๋๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
๋น๋ ํ๋ก์ธ์ค์ ์๋ํ๋ ํ
์คํธ๋ฅผ ํฌํจ ํจ์ผ๋ก์จ ๋ฒ๊ทธ๋ฅผ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ํ์
ํ ์ ์๋ค.
๋งค์ผ ๋ฉ์ธ๋ผ์ธ์ ์ปค๋ฐ์ ํด์ผํ๋ค.
๊ฐ์์ ์งํ ์ํฉ์ ์ถ์ ํ๋๋ฐ ๋์์ด ๋๋ค.
์งง์ ์ฃผ๊ธฐ๋ก ์ปค๋ฐ์ ํ๋ฏ๋ก, ์ถฉ๋์ด ๋ฐ์ํ ํ ๋น ๋ฅด๊ฒ ์ถฉ๋์ํฉ์ ๊ฐ์ง ํ ์ ์๊ณ ๊ทธ๋๊ทธ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์๋ค.
๋ชจ๋ ํ์์ด ๋ฌด์จ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์์์ผ ํ๋ค.
์ง์์ ํตํฉ์ ์ปค๋ฎค๋์ผ์ด์
์ ๊ดํ ๊ฒ์ด๋ฏ๋ก ๋ชจ๋ ์ฌ๋์ด ์์คํ
์ํ์ ์์คํ
์ ์ ์ฉ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ฝ๊ฒ ํ์ธ ํ ์ ์์ด์ผ ํ๋ค.
๊นํ ์ก์
์ ๋ ํฌ์งํ ๋ฆฌ์ push๋ pull request๊ฐ ์คํ๋ ๋ ๊นํ ์ก์
์ด ํธ๋ฆฌ๊ฑฐ ๋๋ค.
๊นํ ์ก์
์ workflow ํ์ผ๋ก ๊ฐ๋จํ๊ฒ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ action์ ์ ์ํ์ฌ ์คํ ํ ์ ์๋ค.
workflow๋ ํ๋ ์ด์์ ํ๋ก์ธ์ค๋ฅผ ์๋์ ์ผ๋ก ์คํํ ์ ์๊ฒ ๊ตฌ์ฑ ํ ์ ์๋ค. workflow๋ ์์ ์ ๋ ํฌ์งํ ๋ฆฌ ์์ ์๋ ymlํ์ผ์ ์ํด ์ ์๋๋ค.
์ฌ๋ ค๊ฐ์ ymlํ์ผ์ ํ๋์ ๋ ํฌ์งํ ๋ฆฌ์ ๊ฐ์ง ์ ์๊ณ , ๊ฐ๊ฐ ๋ค๋ฅธ ๋ค๋ฅธ ๋จ๊ณ์ ์ธํธ๋ฅผ ํํ ์ ์๋ค.
์ด๋ฒคํธ๋ workflow ์คํ์ ํธ๋ฆฌ๊ฑฐ ํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ํน์ ํ๋์ด๋ค.
์๋ฅผ ๋ค์ด ๋๊ตฐ๊ฐ๊ฐ ๊นํ๋ธ๋ฅผ ํตํด pull request๋ฅผ ํ๊ฑฐ๋ push๋ฅผ ํ๋ฉด ๋ฐ์ํ ์ ์๋ค.
job์ workflow ์์ ๊ฐ์ runner๋ฅผ ์คํํ๋ ๋จ๊ณ์ ๋ชจ์์ด๋ค. ๊ฐ๊ฐ์ ๋จ๊ณ๋ ์คํ๋ ์ ์คํฌ๋ฆฝํธ์ด๊ฑฐ๋, ์คํ๋ ์ก์ ์ด๋ค. ๋จ๊ณ๋ ์์๋๋ก ์คํ๋๊ณ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ด๋ค.