TIL & WIL

CI/CD 개념 및 Github Action 구축하기

yeongk0825 2022. 6. 19. 22:15

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을 사용할 수도 있음

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