CI/CD 개념 및 Github Action 구축하기
CI/CD란?
Continuous Integration(지속적인 통합)
: 버그 수정이나 새로 만들어지는 기능들이 매일 리포지토리에 주기적으로 빌드되고 테스트가 되어 merge 되는 것
Continuous Delivery(지속적인 제공)
: 준비된 release가 아무런 문제가 없는지 개발자가 검증 후 최종적으로 배포 준비가 되면 수동적으로 배포하는 것
Continuous Deployment(지속적인 배포)
: 마지막 배포 단계에서 release가 준비되자마자 사용자에게 자동으로 배포되도록 모든 과정을 자동화 해두는 것
GitHub Action 이란?
: Github Action이란 Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 도구이다.
Github 내부에서 프로젝트를 빌드, 테스트, 릴리즈 또는 배포를 지원하는 기능으로서, Github에서 제공하는 CI/CD 도구라고 생각하면 된다.
GitHub Action 주요 개념
1. Workflow
- Workflow는 프로젝트를 빌드, 테스트, 패키지, 릴리스 또는 배포하기 위한 전체적인 프로세스이다.
- Workflow는 여러개의 Job으로 구성되어 event기반으로 동작한다.
- 여러 Job으로 구성되며 최상위 개념이다.
- 나만의 동작을 정의한 Workflow file을 만들어 전달하면 Github Actiond이 실행한다.
- Workflow 파일은 YAML으로 작성되고, Github Repository의 .github/workflows 폴더 아래에 저장됨
2. Event
- Workflow를 Trigger(실행)하는 특정 활동이나 규칙
- 예를 들어 다음과 같은 상황에서 사용할 수 있다.
- 특정 브랜치로 Push
- 특정 브랜치로 Pull Request
- 특정 시간대에 반복(Cron)
- Webhook을 사용해 외부 이벤트를 통해 실행
3. Job
- Job은 여러 Step으로 구성되고, 가상 환경의 인스턴스에서 실행된다.
- 다른 Job에 의존 관계를 가질 수 있고, 독립적으로 병렬 실행도 가능하다.
4. Step
- Step은 순차적으로 명령어를 수행한다.
- Task들의 집합으로, 커맨드를 날리거나 action을 실행할 수 있다.
5. Action
- Workflow의 가장 작은 블럭
- Job을 만들기 위해 Step들을 연결할 수 있다.
- 재사용이 가능한 컴포넌트
- 개인적으로 만든 Action을 사용할 수도 있고, Marketplace에 있는 공용 Action을 사용할 수도 있음
- Github Marketplace와 Github Actions Repository에서 확인 가능하다.
6. Runner
- Gitbub Action Runner 어플리케이션이 설치된 머신으로, Workflow가 실행될 인스턴스
- Github에서 호스팅해주는 Github-hosted runner와 직접 호스팅하는 Self-hosted runner로 나뉨
- Github-hosted runner는 Azure의 Standard_DS2_v2로 vCPU 2, 메모리 7GB, 임시 스토리지 14GB
CI Workflow 적용하기
1. Github Repository 에서 중앙에 Actions를 클릭한다.
참고자료
https://www.youtube.com/watch?v=0Emq5FypiMM
https://insight-bgh.tistory.com/m/473
CI/CD 구축하기(1) - Github Action 이란?
1. GitHub Action 이란? Github Action이란 Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 도구이다. Github 내부에서 프로젝트를 빌드, 테스트, 릴리즈 또는 배포를 지원하는 기능
insight-bgh.tistory.com