๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/CICD

[CICD] ๊นƒํ—ˆ๋ธŒ ์•ก์…˜ ์ปดํฌ๋„ŒํŠธ

by OR15A 2024. 3. 21.
GitHub Action
  • 2023๋…„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” CICD๋„๊ตฌ 1์œ„

1์œ„

  • GitHub์˜ ์ž๋™ํ™” ๋„๊ตฌ
    • ๋‹จ์ˆœํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ~ ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์ถ•
    • ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™” 
  • GitHub ์ €์žฅ์†Œ ๋‚ด์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • YAML์„ ์ด์šฉํ•ด์„œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ
    • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•œ ์ง๋ ฌํ™” ์–ธ์–ด
    • .yml   .yaml
  • ํŠน์ง•
    • ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ(๊นƒํ—ˆ๋ธŒ ์ด๋ฒคํŠธ)์— ๋”ฐ๋ผ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰

 

 

 

 

๊นƒํ—™์•ก์…˜ ์ปดํฌ๋„ŒํŠธ

๊นƒํ—™์•ก์…˜ ์ปดํฌ๋„ŒํŠธ
  • workflow
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š”, ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ž๋™ํ™” ํ”„๋กœ์„ธ์Šค
    • .github/workflows ๊ฒฝ๋กœ์— ํŒŒ์ผ์ด ์žˆ์–ด์•ผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•จ
    • ์—ฌ๋Ÿฌ ์›Œํฌํ”Œ๋กœ์šฐ ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ์‹คํ–‰๋จ
  • event
    • ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋‚ด ํŠน์ • ํ™œ๋™
    • ํŠธ๋ฆฌ๊ฑฐ ๋ฐฉ์‹ : ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋‚ด ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜(push, pull request ) / ์ˆ˜๋™ / ์Šค์ผ€์ค„ / ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์™ธ๋ถ€์—์„œ๋„ ๊ฐ€๋Šฅ
  • runner
    • job์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„
    • ๊ฐ ๋Ÿฌ๋„ˆ๋Š” ํ•˜๋‚˜์˜ job์„ ์‹คํ–‰ํ•จ
    • ์ง€์›๋˜๋Š” ๋Ÿฌ๋„ˆ : Linux, Windows, macOS
  • job
    • ๋Ÿฌ๋„ˆ์—์„œ ์‹คํ–‰๋˜๋Š” step์˜ ์ง‘ํ•ฉ
    • ์•ก์…˜๊ณผ ์Šคํฌ๋ฆฝํŠธ ๋“ฑ์„ step์— ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•จ
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ job์€ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰
    • ์ˆœ์ฐจ์ ์ธ ์‹คํ–‰๋„ ๊ฐ€๋Šฅํ•จ. ์—ฌ๋Ÿฌ job ์‚ฌ์ด์— ์ข…์†์„ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ needs๋ผ๋Š” ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•จ
  • step
    • job์ด ์‹คํ–‰ํ•˜๋Š” ๊ฐœ๋ณ„ ๋ช…๋ น
    • ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉฐ, ํ•œ step์ด ์‹คํŒจํ•˜๋ฉด ๊ทธ ๋‹ค์Œ step๋ถ€ํ„ฐ ์‹คํ–‰X
  • action
    • ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ
    • uses๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ, acrion์„ ๋กœ๋“œํ•จ
    • ํ•˜๋‚˜์˜ step์—์„œ ํ•˜๋‚˜์˜ action๋งŒ ๊ฐ€๋Šฅ
    • ์ข…๋ฅ˜ : Github ๊ณต์‹ ์ œ๊ณต ์•ก์…˜, ๊นƒํ—™ ์ปค๋ฎค๋‹ˆํ‹ฐ ์•ก์…˜, ์‚ฌ์šฉ์ž ์ปค์Šคํ…€ ์•ก

 

 

 

 

Github Marketplace
  • ์•ก์…˜ ์ €์žฅ์†Œ
  • ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์•ก์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์ปค์Šคํ…€ ์•ก์…˜์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ผ๋ถ€ ์•ก์…˜์€ ์ธํ’‹๊ฐ’ ์ „๋‹ฌ ๊ฐ€๋Šฅํ•จ
    • ex) ์ฒดํฌ์•„์›ƒ