TIL) ν¨μ¨μ μΈ κ°λ° νλ‘μΈμ€ CI/CD, CI/CDλ₯Ό μν λ€μν Tools
βΊλ°°ν¬ μλν νμ΄νλΌμΈ : μμ€ μ½λμ κ΄λ¦¬λΆν° μ€μ μλΉμ€λ‘μ λ°°ν¬ κ³Όμ μ μ°κ²°νλ ꡬ쑰.
1. Source λ¨κ³ : μ격 μ μ₯μμ κ΄λ¦¬λκ³ μλ μμ€ μ½λμ λ³κ²½ μ¬νμ΄ μΌμ΄λ κ²½μ°, μ΄λ₯Ό κ°μ§νκ³ λ€μ λ¨κ³λ‘ μ λ¬νλ μμ μ μν
2. Build λ¨κ³ : Source λ¨κ³μμ μ λ¬λ°μ μ½λλ₯Ό μ»΄νμΌ, λΉλ, ν μ€νΈνμ¬ κ°κ³΅νλ€. μ΄ λ¨κ³λ₯Ό κ±°μ³ μμ±λ κ²°κ³Όλ¬Όμ λ€μ λ¨κ³λ‘ μ λ¬νλ μμ μ μννλ€.
3. Deploy λ¨κ³ : Build λ¨κ³λ‘λΆν° μ λ¬λ°μ κ²°κ³Όλ¬Όμ μ€μ μλΉμ€μ λ°μνλ μμ μ μννλ€.
βΊCI/CD νμ΄νλΌμΈ
βοΈ μ§μμ ν΅ν© (CI : continuous integration)
ν ꡬμ±μμ΄ κ°μμ μμ μ μμ£Ό ν΅ν©νλ μννΈμ¨μ΄ κ°λ° λ°©μ.
Code : κ°λ°μκ° μ½λλ₯Ό μ½λ μ μ₯μμ push & merge / λͺ¨λ κ°λ°νμ΄ μ½λ λ³ν νμΈκ°λ₯(ν¬λͺ ν¨)
Build : μ½λ μ μ₯μλ‘λΆν° μ½λλ₯Ό κ°μ Έμμ (μ λ ν μ€νΈ ν) build
Test : μ½λ λΉλμ κ²°κ³Όλ¬Όμ΄ λ€λ₯Έ μ»΄ν¬λνΈμ μ ν΅ν©λλμ§ νμΈ
** λΉλλ κ°λ°μλ§ μ½μ μ μλ μμ€ μ½λλ₯Ό μ€νκ°λ₯ν μ½λ λ° νλ‘κ·Έλ¨μΌλ‘ λ³ννλ κ³Όμ μ΄λ€.
λ²λ€λ§λ λΈλΌμ°μ κ° μμ€μ½λλ₯Ό λ μ μ½μ μ μκ² λμμ£ΌκΈ° λλ¬Έμ, λΉλ κ³Όμ μ€ νλλ‘ λ³Ό μ μλ€. (λΉλλΌκ³ ν΅μ©λκΈ°λ ν¨.)
μ₯μ
1. κ°λ° μμ°μ± ν₯μ = μ£ΌκΈ°μ μΌλ‘ mergeλ₯Ό νκΈ° λλ¬Έμ merge μΆ©λμ νΌν μ μλ€.
2. λ¬Έμ μ μ λΉ λ₯΄κ² λ°κ²¬ = mergeλλ λͺ¨λ μ½λλ€μ μλμΌλ‘ buildλκ³ , test λκΈ° λλ¬Έμ μ½λμ κ²°ν¨μ΄λ λ¬Έμ μ μ λΉ λ₯΄κ² μ μ μλ€.
3. 2μμ λ°κ²¬λ λ¬Έμ μ λΉ λ₯΄κ² μμ κ°λ₯ = μ£ΌκΈ°μ μΌλ‘ mergeλ₯Ό νκΈ° λλ¬Έμ, μ½λμ λ³κ²½ μ¬νμ΄ μκΈ° λλ¬Έμ λ¬Έμ λ₯Ό μμ ν λλ μμ λ¨μμ λ¬Έμ μ μ νμΈ κ°λ₯ν΄μ λ²κ·Έλ₯Ό λΉ λ₯΄κ² μμ ν μ μλ€.
4. μ½λμ νλ¦¬ν° ν₯μ = CIλ₯Ό μ μ΄μνκΈ° μν΄μ unit testλ₯Ό ν¬ν¨ν΄μΌ νκΈ° λλ¬Έμ΄λ€.
βοΈ μ§μμ λ°°ν¬ (CD : continuous delivery / deployment)
μ§μμ ν΅ν© κ³Όμ μ΄ μννκ² λλλ©΄ λ°λ‘ κ³ κ°μκ² λ°°ν¬νλ κ².
Release : λΉλκΉμ§ λͺ¨λ μ€λΉλμκ³ , μ΄λ€ κΈ°λ₯μ΄ κ°λ°λμλμ§ λΉμ¦λμ€ κ΄κ³μλ€κ³Ό μ΄μΌκΈ°λ₯Ό λλλ λ¨κ³.
μ΄λ€ κΈ°λ₯μ λ£μμ§, ν΄λΉ 릴리μ¦λ λ°°ν¬λ₯Ό ν μ§ λ§μ§ κ²°μ νλ λ¨κ³λ‘ μ¬λ¬ μμ¬κ²°μ μ΄ μ΄λ£¨μ΄μ§λ€.
Deploy : λ°°ν¬
Operation : λ°°ν¬λ μννΈμ¨μ΄λ₯Ό μ€μ μ΄μ©νλ κ³Όμ . κ³ κ°μ νΌλλ°±μ μΆ©λΆν λ°μ κΈ°νμ λ°μνλ€.
μμ¦μλ λ²μ 릴리μ¦λ₯Ό μ κΈ°λ‘ν΄λκ³ λ°λ‘λ°λ‘ λ°°ν¬νλ μ¬λ‘κ° μ¦κ°νκ³ μλ€.
βΊκ²°λ‘
λ μμ£Ό μ½λλ₯Ό ν©μΉκ³ , λ μμ£Ό κ²°κ³Όλ¬Όμ νμΈνμ, λ μμ£Ό κ³ κ°μκ² λ³΄μ¬μ£Όμ!
=> μμ νλ‘μΈμ€λ₯Ό μλνν΄μΌνλ€.
hello worldλΌλ μμΌλ©΄ main branchμ pull requestμ merge ν λλ§λ€ λ°°ν¬νλκ±Έ μΆμ²ν¨.
βΊCI/CDλ₯Ό μν λ€μν Tools!
Buildkite
GitHub Actions
GitLab CI/CD
Bitbucket Pipelines
circleci
Vercel
Netlify