Continuous Intergration
- 동일한 프로젝트에서 작업하는 모든 사람이 정기적으로 코드 베이스의 변경 사항을 중앙 저장소에 병합하도록 하는 방식
- future brach의 생명주기를 짧게 가져가므로써 main branch를 중심으로 개발하도록 하는 방법
- 실패를 줄일 수 있다
- 빠른 문제 해결
- 코드 검토가 쉬움
Continuous Deployment/Continuous Delivery
Continuous Deployment
- 지속적 전달에 이어 프로덕션 배포까지 자동화
- 자동 배포
Continuous Delivery
- CI이후 코드의 변경사항을 프로덕션 환경으로 릴리즈 준비 상태(스테이징 자동화)
- 수동 배포
CI/CD 파이프라인
개발 -> 빌드 -> 테스트 -> 릴리즈 -> 배포
Jenkins
- 무료
- 서버에 설치가 필요
- 레퍼런스가 많은 안정적인 툴
- 다양한 플러그인으로 커스터마이징 가능
- 각 단계를 동기적으로 실행
Github Actions
- Github와 연동
- 클라우드 환경이서 작동하여 설치X
- Runners라는 VM에서 실행
- Self-hosted Runner 직접 구동 가능
- Workflow를 .yml 소스코드로 관리