๐Ÿ•Š๏ธ ์•„์ง๋„ CI ํˆด ๊ณ ๋ฏผ ์ค‘? Gitea/GitHub์™€ ์™„๋ฒฝ ํ˜ธํ™˜๋˜๋Š” Woodpecker๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”

:dove: ์ง„์ •ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋ฐ˜์˜ CI/CD ์—”์ง„, 'Woodpecker CIโ€™๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

์ „์— ์†Œ๊ฐœ๋“œ๋ฆฐ ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ํ•œ ๋ฒˆ์ฏค ๋“ค์–ด๋ณด์…จ์„ โ€˜Drone CIโ€™ ์˜ ๊ฐ„๊ฒฐํ•จ๊ณผ ํŽธ๋ฆฌํ•จ์€ ์ตœ๊ณ ์˜€์ง€๋งŒ, ๋ผ์ด์„ ์Šค ์ •์ฑ… ๋ณ€๊ฒฝ ๋“ฑ์œผ๋กœ ์•„์‰ฌ์›€์„ ๋А๊ผˆ๋˜ ๋ถ„๋“ค์ด ๊ณ„์‹ค ํ…๋ฐ์š”.

Woodpecker CI๋Š” ๊ทธ ์ •์‹ ์„ ์ด์–ด๋ฐ›์•„ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ฃผ๋„ํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ํƒ„์ƒ์‹œํ‚จ ํฌํฌ(Fork) ํ”„๋กœ์ ํŠธ, ์ž…๋‹ˆ๋‹ค.

:light_bulb: ์™œ Woodpecker CI?**

  • :one: Docker ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ (Container First)** Woodpecker์˜ ๋ชจ๋“  ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„๋Š” Docker ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์„ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์˜์กด์„ฑ ๊ด€๋ฆฌ๋„ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

  • :two: ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ฝ”๋“œํ™” (Pipeline as Code) ๋ณต์žกํ•œ UI ์„ค์ • ๋Œ€์‹  .woodpecker.yml ํŒŒ์ผ ํ•˜๋‚˜๋กœ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜•์ƒ ๊ด€๋ฆฌ(Git)์™€ ํ•จ๊ป˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด ํ˜‘์—…์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • :three: ๊ฐ•๋ ฅํ•œ ํ™•์žฅ์„ฑ (Extensible Plugins) ๊ธฐ์กด Drone ์ƒํƒœ๊ณ„์˜ ์žฅ์ ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™€, ์ˆ˜๋งŽ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•Œ๋ฆผ, ๋ฐฐํฌ, ํ…Œ์ŠคํŒ… ๊ธฐ๋Šฅ์„ ์†์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • :four: ๋‹ค์–‘ํ•œ Git ์„œ๋น„์Šค ์ง€์› GitHub, GitLab, Bitbucket์€ ๋ฌผ๋ก , ์ตœ๊ทผ ๋งŽ์€ ๊ด€์‹ฌ์„ ๋ฐ›๋Š” Gitea๋‚˜ Forgejo์™€ ๊ฐ™์€ ์˜คํ”ˆ์†Œ์Šค Git ์„œ๋น„์Šค์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

:bullseye: ์ด๋Ÿฐ ํŒ€์—๊ฒŒ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!**

  • ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ On-premise CI/CD ๊ตฌ์ถ•์ด ํ•„์š”ํ•œ ํŒ€
  • Gitea/Forgejo๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ž์ฒด ํ˜ธ์ŠคํŒ…์„ ์„ ํ˜ธํ•˜๋Š” ์กฐ์ง
  • ๋ณต์žกํ•œ Jenkins ์„ค์ •์— ์ง€์ณ, ์ง๊ด€์ ์ธ YAML ํŒŒ์ดํ”„๋ผ์ธ์„ ์›ํ•˜๋Š” ๊ฐœ๋ฐœ์ž

์ง„์ •ํ•œ ์˜คํ”ˆ์†Œ์Šค ์ •์‹ ์œผ๋กœ ๋ฌด์žฅํ•œ Woodpecker CI๋กœ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด๋ณด์„ธ์š”! :rocket:

:open_book: ์ฐธ๊ณ  ๋ฌธ์„œ

| This is a space where knowledge is not merely consumed, but respected, sovereign, and connectedโ€”shared together with cloud industry professionals (Bros).|
| ์ง€์‹์ด ์†Œ๋น„๋˜์ง€ ์•Š๊ณ  ์กด์ค‘ยท์ฃผ๊ถŒ๋ณด์žฅยท์—ฐ๊ฒฐ๋˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ํด๋ผ์šฐ๋“œ ํ˜„์—… ์ „๋ฌธ๊ฐ€(Bro)์™€ ํ•จ๊ป˜ ๊ณต์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. |