본문 바로가기
BackEnd

CI/CD - 기초

by mizuiro 2024. 12. 25.

1. 개념

테스트(Test), 통합 (Merge) , 배포 (Deploy)의 과정을 자동화 하는 것

CI : continuous Integration

CD : continuous deploy

코드의 수정이 일어날 때마다 반복하기 귀찮고, 번거롭기 때문에 이러한 반복적인 과정을 자동화 시키기 위해 CI/CD 인프라를 구축하는 것이다

2. CI/CD 구축 시 사용할 Github Actions

  • CI/CD 구축 Tool
  • Github Actions, Jenkins, Circle CI, Travis CI etc.
  • 현업에서 많이 사용하면서, 무료로 사용할 수 있고, 빌드용 서버가 필요 없는 Github Actions을 활용하는 경우가 많음
  • Jenkins 도 많이 사용하지만, 단점으로 별도의 서버 구축이 필요하여 비용이 발생하기 된다
  • Github Actions은 별도의 서버 구축 없이 Githubdp

3. CI/CD 흐름

Github Actions은 로직을 실행시킬 수 잇는 일종의 컴퓨터

CI/CD 과정에서 Github Actions은 “빌드, 테스트, 배포”에 대한 로직을 실행시키는 역할

  • 코드 작성 후 commit
  • github에 push
  • push 라는 이벤트를 감지해서 github Actions에 작성한 로직이 실행
    • build
    • test
    • 서버로 배포
  • 서버에 배포된 최신 코드로 서버를 재 실행

4. github Action 작동 기초

  1. 새로운 폴더 생성
  2. .github/workflows/
  3. github Actions 에서 실행될 로직 작성
  4. deploy.ymal
  5. git repository upload
  • 용어하나의 yaml 파일을 하나의 workflow 로 부름workflow 가 실행되는 시점 설정Job :Job은 여러 step 들로 구성특정 작업을 수행하는 가장 작은 단위
  • Step :
  • 하나의 workflow는 1개 이상의 Job으로 구성되고, 여러 Job은 기본적으로 병렬로 수행
  • ex) main 브랜치에 push 될 때 해당 workflow를 실행
  • Event :
  • workflow :
  • 흐름→ workflow는 여러개의 Job으로 구성, Job은 여러 Step으로 구성 되어 있기 때문에 Step이 순차적으로 위에서 아래로 실행
  • → Event 가 발생했을 때 해당 workflow를 실행