Github Actions CI ์๋ ๊ฐ์ ๊ธฐ
์์ํ๋ฉฐ
CI๊ตฌ์ฑ์ ์ด๋ค ์์ผ๋ก ํ๊ณ ๊ณ์ ๊ฐ์? CI๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ์๋ํ ํ๋ก์ธ์ค์ธ ์ง์์ ์ธ ํตํฉ(Continuous Intergration)์
์๋ฏธํฉ๋๋ค. ์ง์์ ํตํฉ์ด ์ ๊ตฌํ๋์ด ์๋ ๊ฒฝ์ฐ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์๊ฒผ์ ๋ ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋๋ ํ
์คํธ๋ฅผ ๊ฑฐ์ณ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณํฉ๋ฉ๋๋ค.
์ด ์ธ์๋ CI๋ ์ฝ๋ ํฌ๋งทํ
์ด๋ Storybook์ ๋ฐฐํฌํ๋ ์ฉ๋๋ก ์ฐ์ผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ๋ ๋ฌด์์ธ๊ฐ
๋์์ธ์์คํ
์ ๊ตฌ์ถํ๋ฉฐ Storybook๊ณผ ํจ๊ป Chromatic์ด๋ผ๋ ํด์ ์ฑํํด ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
Chromatic์ UI ์ปดํฌ๋ํธ ๊ฐ๋ฐ ๊ณผ์ ์์ ํผ๋๋ฐฑ๊ณผ ์๊ฒฌ ์์ง์ ๋๋ ํด๋ก Storybook๊ณผ ํจ๊ป ์ฌ์ฉํ ๊ฒฝ์ฐ ํฐ ์๋์ง ํจ๊ณผ๋ฅผ ๋ผ ์ ์์ต๋๋ค.
Chromatic์ ๋งค ์์
๋ฌผ๋ง๋ค ๊ณ ์ ์ ๋งํฌ๋ฅผ ์์ฑํ์ฌ ๋์์ด๋์์ ํผ๋๋ฐฑ์ด ๊ฐ๋ฅํ ํด์
๋๋ค. ๋์์ธ ๋ฆฌ๋ทฐ๊ณ์ Pull Reqeust๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํด๊ฐ ์ฝ์ต๋๋ค.
๋ฌธ์ ๋ ์์
๋ฌผ์ Chromatic ๋ฐฐํฌํ๋๋ฐ๊น์ง ์ฝ 3๋ถ์ด ๋๋ ์๊ฐ์ด ์์๋๋ค๋ ๊ฒ์
๋๋ค. ์์
๋ฌผ ํ๋์ 3๋ถ์ด๋ผ๋ฉด ๊ธฐ๋ค๋ฆด ์ ์๋ ์๊ฐ์ผ๋ก ์๊ฐ๋ ์ ์์ง๋ง ์ปดํฌ๋ํธ ๋จ์๋ก
์๋ก์ด ์์
๋ฌผ์ด ๋ฐ์ํ๋ ๋์์ธ ์์คํ
์ ๊ฒฝ์ฐ ๋ฐฐํฌ๋ก ์ธํด ๋ฐ์๋๋ ์ง์ฐ ์๊ฐ์ด ๊ธธ์ด์ง ์ ์์ต๋๋ค.
ํด๊ฒฐ ๊ณผ์
์์กด์ฑ ์บ์ฑ
๋จผ์ ์ฒซ๋ฒ์งธ๋ก ์๋ํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ์์กด์ฑ์ ์บ์ฑํด๋๋ ๊ฒ์
๋๋ค. Github Actions์๋ ์บ์ฑ์ ํ ์ ์๋ ๊ณต๊ฐ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์
์ง์ ํ ๋จ์๋ณ๋ก ์บ์ฑํ ์ ์์ต๋๋ค. ์ ์ ๊ฒฝ์ฐ ๋ธ๋์น ๋จ์๋ก ์์กด์ฑ์ ์บ์ฑํ์ด์.
์บ์ฑ ํ์ง ์์์ ๋ yarn install ๋ช
๋ น์ด๊ฐ ์คํ๋๋ Install dependencies ๋จ๊ณ์ ์์ ์๊ฐ์ ์ฝ 1๋ถ ๊ฐ๋์ด์์ต๋๋ค. ์ค์น๋๋ ์์กด์ฑ์ ์บ์ฑํด๋์๋ค๊ฐ
๋ ๋ค์ CI๊ฐ ๋ฐ์๋๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ต๋๋ค.
์บ์ฑ๋ node_modules๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋๊ณ Install dependencies ๋จ๊ณ๊ฐ ์๋ต๋ฉ๋๋ค. ๋ฐ๋ผ์ Cache๋ฅผ ํ์ธํ๊ณ ์ค์น๊น์ง์ ์์์๊ฐ์ด ๋จ 6์ด๋ก ๋จ์ถ๋ฉ๋๋ค.
์์
๋ฌผ์ ์ฒ์ ํธ์ํ ๊ฒฝ์ฐ์๋ ์บ์ฑ๋์ด ์๋ ์์กด์ฑ์ด ์๊ธฐ ๋๋ฌธ์
์ฒซ ์ํ๋๋ ๋ฌด์กฐ๊ฑด์ ์ผ๋ก ์์กด์ฑ ์ค์น ์๊ฐ์ด ์์๋๋ค๋ ์ ์ด ์์ง๋ง, ์ง์์ ์ผ๋ก ๋ฐ์ํ๋ CI ์๊ฐ์ ์ค์ผ ์ ์๋ค๋
์ ์์ ์์กด์ฑ ์บ์ฑ์ ํ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋์ ๊ฒฐ๊ณผ๋
์์น๋ก ๋ณด์๋ฉด ์ฝ 2๋ถ ๊ฐ๋ ์ค์์ง๋ง ์์ง๋ Chromtaic ๋ฐฐํฌ์ ์์๋๋ ์๊ฐ์ด ์ฝ 1๋ถ ๊ฐ๋ ๊ฑธ๋ฆฝ๋๋ค. ๋จ์ถ๋ 2๋ถ์ ์์กด์ฑ ์ค์น ๊ณผ์ ์ ์์๋๋ ์๊ฐ์ผ๋ก
์๊ฐํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. Chromatic์ ์์
๋ฌผ์ ๋ณ๊ฒฝ์ ์ ํ์ธ์์ผ์ฃผ๋ ๋๊ตฌ์ด๊ธฐ ๋๋ฌธ์ ์บ์ฑ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค. ์์กด์ฑ ์บ์ฑ ์ธ์ CI ์๊ฐ์ ๋จ์ถํ ์ ์๋ ๋ฐฉ๋ฒ์
์กฐ๊ธ ๋ ์๊ฐํด๋ณผ ํ์๊ฐ ์์ต๋๋ค.