์žฌ๋ฐŒ๊ฒŒ ํ•ฉ์‹œ๋‹ค

๊ธฐ๋กํ•˜๊ธฐ, ๊ฐ€์‹œํ™”ํ•˜๊ธฐ

git ๋งˆ์Šคํ„ฐ 4

Husky๋กœ Git hooks ์ž๋™ํ™”ํ•˜๊ธฐ(+ lint-staged, commitlint)

Git hooks๋ž€? ํŠน์ • git ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํŠน์ • ๋™์ž‘์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ ์˜ˆ) commit ์‹œ์— ์ž๋™์œผ๋กœ lint๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ Husky๋ž€? ์†์‰ฌ์šด Git Hook ์ ์šฉ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Husky์™€ Github Actions์˜ ์ฐจ์ด Husky: ๋กœ์ปฌ์—์„œ ํŠน์ • git ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํŠน์ • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ Github Actions: ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ ˆํผ์ง€ํ† ๋ฆฌ์— ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํŠน์ • ์ž‘์—…๋“ค์„ ์‹คํ–‰. CI/CD๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ด๋‹ค. ์ด ๊ตฌ๋ถ„์ด ์ •ํ™•ํ•œ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์šฐ์„  ๋‚˜๋Š” ์ด๋ ‡๊ฒŒ ์ดํ•ดํ–ˆ๋‹ค. ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Git hooks ์ข…๋ฅ˜ ํ”„๋กœ์ ํŠธ์—์„œ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Git hooks ์ข…๋ฅ˜๋ฅผ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค! cd .git/hooks ls lint-staged, com..

Github Actions๋กœ CI ์ ์šฉํ•˜๊ธฐ(๊ทน ์ดˆ๋ณด์ž์šฉ๐Ÿ˜ˆ), Github Actions ์ž‘๋™ ํ™•์ธํ•˜๋Š” ๋ฒ•

์ด๊ฑฐ ๋ณด์‹ญ์‹œ์˜ค!!! ์ œ๊ฐ€ ๋ฉ‹์ง„ ๊ฒƒ์„ ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค!!! ํฌํฌ ๋ฟŒ๋“ฏโœŒ๐Ÿป์ด๋Ÿฐ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ณธ ๊ฒŒ ์ฒ˜์Œ์ด๋ผ ๋งŽ์ด ํ—ค๋งธ๋‹ค. ๋‚˜๊ฐ™์€ ์ดˆ๋ณด์ž๋“ค์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•ด๋ณด๊ฒ ๋‹ค. ๐Ÿ’๐Ÿปโ€โ™‚๏ธ Github Actions๋ž€? CI/CD ํˆด์ด๋‹ค. Jenkins, CircleCI, TravisCI ๋“ฑ์˜ ๋‹ค๋ฅธ ํˆด๋“ค๋„ ์žˆ์ง€๋งŒ Github Actions์˜ ๊ฒฝ์šฐ Github์—์„œ ์ œ๊ณตํ•˜๋Š” CI/CD ํˆด์ด๋ผ๋Š” ๊ฒŒ ํฐ ์ด์ ์ด๋‹ค. ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ์ ์šฉ ๋ฐฉ๋ฒ• ํ”„๋กœ์ ํŠธ ์ตœ์ƒ๋‹จ์— .github ํด๋” ์ƒ์„ฑ ๊ทธ ์•ˆ์— workflows ํด๋” ์ƒ์„ฑ ๊ฐœ๋ณ„ workflow ํŒŒ์ผ ์ž‘์„ฑ. ํ™•์žฅ์ž๋Š” .yml ์„ ์‚ฌ์šฉํ•œ๋‹ค. ํŒŒ์ผ๋ช…์€ ์ž์œ ๋กญ๊ฒŒ ์ง€์œผ๋ฉด ๋œ๋‹ค. ๋‚˜๋Š” CI ๋ผ๋Š” ์ด๋ฆ„์˜ workflow๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. ํŒŒ์ผ๋ช…์€ ci.yml๋กœ ์ง€์—ˆ๋‹ค. workflow๋Š” ๋ง๊ทธ๋Œ€๋กœ ์ผ๋ จ์˜ ..

์ž‘์—… ์ค‘๊ฐ„์— ์›๊ฒฉ ์ €์žฅ์†Œ pull์„ ๋ฐ›๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•

https://meoweundi.tistory.com/20 remote์— pushํ•œ ์ปค๋ฐ‹์€ rebase ํ•˜์‹œ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค(๊ผฌ์ธ git ํ‘ผ ๊ธฐ๋ก) ๋“œ๋””์–ด ์ •์ƒ์ ์ธ ๋ฐฉ๋ฒ•๋“ค๋กœ ๊ผฌ์ธ git์„ ํ’€์–ด๋ƒˆ๋‹ค ์šฐํ•˜ํ•˜ ๋ฌธ์ œ ์ƒํ™ฉ ์ •๋ฆฌ(์ˆœ์„œ๋Œ€๋กœ) 1. local/feature/modal์„ remote์— push 2. origin/feature/modal โžก๏ธ origin/master pull request 3. ๋‹ค๋ฅธ ํŒ€์›์ด ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜.. meoweundi.tistory.com ์œ„ ๊ธ€์—์„œ ๊ฐ€์กŒ๋˜ ์˜๋ฌธ์˜ ์˜ฌ๋ฐ”๋ฅธ ํ•ด๋‹ต์„ ์ฐพ์•˜๋‹ค. ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๋ฌธ์ œ ์ƒํ™ฉ ์ •์˜ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜๋ฅผ local/[๋ธŒ๋žœ์น˜๋ช…], ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๋ธŒ๋žœ์น˜๋ฅผ remote/[๋ธŒ๋žœ์น˜๋ช…]์œผ๋กœ ์ง€์นญํ•˜๊ฒ ๋‹ค. local/feature ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—… ์ค‘์ด๊ณ , remote/featur..

remote์— pushํ•œ ์ปค๋ฐ‹์€ rebase ํ•˜์‹œ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค(๊ผฌ์ธ git ํ‘ผ ๊ธฐ๋ก)

๋“œ๋””์–ด ์ •์ƒ์ ์ธ ๋ฐฉ๋ฒ•๋“ค๋กœ ๊ผฌ์ธ git์„ ํ’€์–ด๋ƒˆ๋‹ค ์šฐํ•˜ํ•˜ ๋ฌธ์ œ ์ƒํ™ฉ ์ •๋ฆฌ(์ˆœ์„œ๋Œ€๋กœ) 1. local/feature/modal์„ remote์— push 2. origin/feature/modal โžก๏ธ origin/master pull request 3. ๋‹ค๋ฅธ ํŒ€์›์ด ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—… ํ›„ origin/master๋กœ merge pr์—์„œ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•ด local/feature/modal ๋ธŒ๋žœ์น˜์—์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ ์ž ํ–ˆ๋‹ค. ๊ทธ ์ „์— ๋™๋ฃŒ์˜ ์ž‘์—…์„ pull ๋ฐ›๊ธฐ ์œ„ํ•ด local/master๋กœ ์ด๋™, git pull origin master ์„ ์‹คํ–‰ํ–ˆ๋‹ค. ์ดํ›„ ๋‹ค์‹œ local/feature/modal ๋ธŒ๋žœ์น˜๋กœ ๋Œ์•„์™€, pull ๋ฐ›์€ ์ดํ›„์˜ ์ปค๋ฐ‹๋ถ€ํ„ฐ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด local/master์— ๋Œ€ํ•ด reba..