미리도서관(토이 프로젝트)의 API 프로젝트에 대한 CI / CD를 구축해서 테스트, 빌드, 배포에 대한 자동화 작업을 하려고 한다. CI 툴은 무료이고 사용법이 비교적 간단한 Jenkins를 사용하고 CD 툴은 AWS CodeDeploy를 사용하기로 (마음대로 결정) 했다. 현재 설계중인 그림과 과정은 다음과 같다.

CI 과정
- work-assistant-api 프로젝트의 main branch을 타겟으로 하는 Pull Request를 merge하거나 main branch에 push
- Jenkins를 통해 자동 테스트와 빌드 실행
- (3-1) 빌드 성공 여부를 Slack을 통해 알림
CD 과정
- (3-2) 빌드 결과물인 .jar 파일을 S3에 업로드
- CodeDeploy에서 빌드 결과물에 대한 배포 실행
- SNS를 통해 배포 알림 요청
- SNS가 Lambda를 트리거
- Lambda에서 배포 성공 여부를 Slack을 통해 알림
이제 CI와 CD 과정 2가지로 나눠서 단계적으로 진행해보자!