코딩하는 개굴이

CI / CD 본문

안드로이드

CI / CD

개굴이모자 2021. 2. 21. 22:22
반응형

CI / CD

CI 란?

  • Continuous Integration
  • Build, Test 즉 통합을 실시하는 프로세스를 상시로 실행해 주는 것

CD 란?

  • Continuous Delivery / Deploy
  • 소프트웨어를 더 빠르게, 더 주기적으로 빌드하고 테스트하여 출시하는 것을 목표로 함
  • 소프트웨어가 언제든지 신뢰 가능한 수준으로 출시되는 것을 보증하기 위함
  • 변경사항의 배포에 대한 비용, 시간, 위험을 줄일 수 있음

자동화 배포의 장점

  • 수동으로 개발자의 손을 이용한 배포는 휴먼에러 발생의 소지가 있으므로, 최대한 자동화를 이루는 것

시스템의 기본

  • 버전 관리 시스템
    • 브랜치 / 태그가 올라왔을 때, CI 환경에서 빌드 / 테스트를 수행
      • CI 환경의 빌드가 완료 시 타겟 관리 시스템에서 빌드 / 테스트 결과를 알림
      • CI 환경의 빌드가 완료 시 배포

Git Action

  • Github의 자체 ci/cd 기능으로, 깃허브 내에서 빌드 / 테스트를 쉽게 하고 결과를 진단 받을 수 있음
  • Github 저장소에서 발생하는 build, test, package, relase, deploy 등의 이벤트를 기반으로 직접 원하는 workflow를 만들 수 있다
  • workflow는 저장소마다 최대 20개 까지 등록할 수 있고, workflow 안의 job 이라는 단위마다 최대 6시간 동안 실행될 수 있으며, 초과 시 자동 중지된다.
  • 무료 계정 시 한달 500mb, 실행시간 2000m 제공

사용 방법

  • 저장소에 .github/workflows 폴더를 만들어 .yml 형식으로 workflow를 정의한다.

Workflow 핵심 구성

  • 이벤트가 발생했을 때 실행될 수 있다
  • 최소 1개 이상의 job을 정의해야 한다
  • job 안에는 여러 step 이 정의될 수 있다
  • step 안에는 단순 커멘드 실행부터 action까지 지정할 수 있다
  • action은 직접 작성하거나 github 마켓 플레이스에 공유된 것을 사용할 수 있다

참고 링크

반응형
Comments