CI/CD
- 새로운 코드를 통합함으로써 개발/운영에서 발생할 수 있는 문제를 해결하기 위한 솔루션
CI (Continuous Integration)
- 지속적인 통합을 의미
- 빌드/테스트를 자동화
- 특정 조건(push, pr 등)에 의해 빌드 및 테스트가 진행됨
CD (Continuous Delivery / Continuous Deployment)
- 지속적인 서비스/지속적인 배포를 의미
- 지속적인 서비스
- 변경된 코드들이 빌드 및 테스트를 거쳐 Repository에 업로드되는 것
- 지속적인 배포
- 변경된 코드들이 빌드 및 테스트를 거쳐 Repository에 업로드되고 실제 사용자에게 제공되는 프로덕션까지 배포되는 것
https://www.redhat.com/ko/topics/devops/what-is-ci-cd
준비
아래 3개의 항목들을 Github Repository의 Secrets에 등록
- Firebase App ID
- Google Services Json (Firebase)
- Service Account Key (Firebase)
- 서비스 계정 사용자
- Firebase 앱 배포 관리자
- 위 두 개의 역할을 설정한 후 Json 파일 다운로드
예제
https://github.com/banjjak2/android-ci-cd