GitHub Actions (1) - 기본 개념

김설영·2022년 8월 9일
0

GitHub-Actions

목록 보기
1/2

참고 문서
GitHub-Action 공식문서
GitHub-Action 정리가 깔끔하게 잘된 블로그

AWS EC2 배포를 공부하면서, CI tool로써 GitHub Action을 사용했었다.

사용 당시에는 그렇구나.. 하고 넘어갔던 부분들을 좀 더 집요하게 파고들어 원리를 이해 해보고자 공식 문서를 읽어보고 정리하기로 했다.

What is GitHub Actions?


  • 빌드, 테스트 및 배포 파이프라인을 자동화 할 수 있는 CI/CD 플랫폼

  • DevOps를 넘어, Repository에서 다른 이벤트가 발생할 때 workflow를 실행할 수 있음

    • 예를 들어, 다음과 같은 workflow를 실행할 수 있음.
      누군가 저장소에 새 문제를 생성 → 적절한 레이블 자동 추가
  • 해당 Workflow를 실행하기 위해 Linx, Windows, MacOS와 같은 가상 머신을 제공함


GitHub Actions의 구성


GitHub Repository에 특정 이벤트 발생(pull 요청 등) → Trigger → Runner 작동 → Job 실행

WorkFlows

  • 하나 이상의 작업(job)을 실행하는 자동화 프로세스

  • Workflow는 GitHub repository에 체크인 된 YAML 파일에 의해 정의됨.

    • 해당 YAML 파일은 GitHub repository의 .github/workflows에 정의된다.
  • GitHub repository에 발생되는 어떠한 이벤트에 의해 trigger될 때 실행됨. (수동으로 실행 가능. 일정 별 실행 가능)

  • Repository에는 각각 다른 작업 집합을 수행할 수 있는 여러개의 Workflow가 존재할 수 있음.

Events

  • Workflow의 실행을 Trigger하는 Repository의 특정 활동

  • pull 요청, push 요청, REST API에 게시 등 여러 종류의 이벤트가 있을 수 있다.

Runner

  • 작업을(job) 처리하는 가상 머신

    • 즉, Workflow가 trigger될 때 Workflow를 실행하는 서버
    • Ubuntu Linux, Microsoft Windows, MacOS runner를 제공함
    • 다른 운영 체제가 필요하거나, 특정 하드웨어 구성이 필요한 경우 자체 러너 호스팅 가능.
  • 작업 단위로 존재

    • 한 번에 하나의 작업을 실행할 수 있음.

Jobs

  • "작업"을 의미

  • 동일한 Runner에서 실행되는 workflow의 일련의 단계

  • Job은 순서대로 실행되며 서로 종속 됨

    • 각 단계는 동일한 Runner에서 실행된다.
    • 한 단계 → 다른 단계로 데이터를 공유할 수 있다.
    • 단계의 예시)
      애플리케이션 빌드 → 애플리케이션 테스트
  • 다른 작업과의 dependency 구성 가능

    • 서로 다른 두 작업은 병렬로 실행된다.
    • 작업을 다른 작업에 종속시키면, 종속 작업이 완료될 때 까지 대기했다가 실행할 수 있다.

Action

profile
블로그 이동하였습니당! -> https://kimsy8979.tistory.com/

0개의 댓글