CI / CD 란?

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/014576cf-4f39-462d-b24e-806692a0d14d/Untitled.png

CI(Continuous Integration)

CD(Continuous Delivery or Continuous Deploy)

CI: 통합을 지속적으로 수행하는 행위

CD: 지속적 배포

CI&CD: 짧은 주기로 개발중인 소프트웨어를 배포하고 그 과정을 자동화함

CI / CD 프로세스

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c1bd45f0-b6d0-45c6-91eb-0b32e0e7afe0/Untitled.png

  1. Push 로컬에서 commit된 소스코드를 원격 저장소(GitHub)에 Push 한다.

  2. Hook

    소스코드가 Push 되면 GitHub는 Travis(Jenkins, Xcode Server)에게 Push가 되었다는 것을 알려줘야한다.

  3. Debug Build, Test, Release Build Travis CI는 Matrix, Build Stages를 통해 병렬로 실행될 수 있는 작업 그룹을 지정할 수 있다. Xcode에서는 Build Configuration을 file로 구성(xcconfig)할 수 있도록 지원하고 있다.

  4. Integrate codecov

    Test Coverage를 측정하기 위해 codecov를 사용한다.