๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“š Today _I_Learned/GitLab

GitLab ๊ฐ€์ž…, ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

๐Ÿ“šCI/CD๋ž€ ๋ฌด์—‡์ผ๊นŒ??

ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฐฐํฌ ํ›„ ๋™์ž‘์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ˆ˜์ •์‚ฌํ•ญ์ด ์ƒ๊ฒผ์„ ๋•Œ, ์ˆ˜์ • โ–ถ ์ปดํŒŒ์ผ โ–ถ ๋นŒ๋“œ โ–ถ ํ…Œ์ŠคํŠธ ๊ณผ์ •๋“ค์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•œ๋‹ค.

  • CI(Continuous Integration)
    • ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ผ๋Š” ์˜๋ฏธ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๋ช…์ด ํ•˜๋‚˜์˜ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ์ˆ˜์ •์„ ์ง„ํ–‰ํ•ด๋„ ์ง€์†์ ์œผ๋กœ ํ†ตํ•ฉํ•˜๋ฉด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ
    • ๊ฐœ๋ฐœ์ž๋“ค ๊ฐ์ž ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ์„ new branch์— ๊ฐœ๋ฐœํ•˜๊ณ  main์œผ๋กœ ํ†ตํ•ฉํ•ด์„œ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์„ ์ž๋™ํ™”ํ•˜์—ฌ Merge๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ์ค€๋‹ค.
  • CD(Continuous Deployment)
    • ์ง€์†์  ์„œ๋น„์Šค ์ œ๊ณต, ์ง€์†์ ์ธ ๋ฐฐํฌ๋ฅผ ์˜๋ฏธ
    • ์ฝ”๋“œ ๋ณ€๊ฒฝ์„ ํ•˜๊ณ  Merge๋ฅผ ํ†ตํ•ด ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋ฉด ์ˆ˜๋™ ๊ฐœ์ž… ์—†์ด ํ•ด๋‹น ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ๋ฐฐํฌ
      โ–ถ ์žฅ์  : ์‚ฌ์šฉ์ž๋“ค์ด ํ’ˆ์งˆ์ €ํ•˜ ์—†์ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
  • ์•ž์œผ๋กœ GitLab์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ž์œผ๋กœ CI/CD๋ฅผ ์ ์šฉํ•˜๋Š” ๋ชจ์Šต์„ ํฌ์ŠคํŒ…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๐ŸฆŠGitLab ๊ฐ€์ž…, ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ


 

1. GitLab ๊ฐ€์ž…ํ•˜๊ธฐ

a. GitLab ์‚ฌ์ดํŠธ ์ ‘์†
b. ํšŒ์›๊ฐ€์ž… ๋˜๋Š” ๊ธฐ์กด gitHub์™€ ์—ฐ๊ฒฐ

 

gitlab ๊ฐ€์ž…

 


 

2. GitLab์—์„œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ›„ intellij ํ”„๋กœ์ ํŠธ์™€ ์—ฐ๊ฒฐ

 

 

a. New project ์ƒ์„ฑ

 

 

 

b. new block project ์ƒ์„ฑ(README ํŒŒ์ผ ์ƒ์„ฑ ํฌํ•จ ์•ˆ ํ•˜๊ธฐ)

 

 

c. intellij ํ”„๋กœ์ ํŠธ์— ์—ฐ๊ฒฐ

  • ํ”„๋กœ์ ํŠธ ๋งํฌ ๋ณต์‚ฌํ•˜๊ธฐ

  • intellij์—์„œ create repository ๋งŒ๋“ค๊ธฐ



  • Manage remote์—์„œ ์ถ”๊ฐ€



  • ์ฒซ commit ํ•˜๊ธฐ

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์‹œ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ํŒ€์›๋ผ๋ฆฌ ๊ณต์œ ํ•˜๋ฉด์„œ ์—ญํ•  ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.