본문 바로가기
DevOps

#9 Github Action

by Anonymouszero 2025. 6. 11.
반응형

Github의 CI/CD - Components of Github Actions
 - Workflows
   : Build Pipeline에 해당
 - Events
   : Workflow를 trigger 시키는 요소
 - Jobs
   : Workflows를 구성 함
   : Step들로 구성되어 있음
 - Steps
   : Action들로 구성되어 있음
 - Actions
----------------------------- 위의 내용들이 Workflow(Events ~ Actions)
 - Runners 
   : Step을 수행하는 곳
   : Log 수집 진행

Github Actions의 구성


Github Actions
 - 목적
  : 소프트웨어 개발 주기에서 Task 자동화 지원
  : 이벤트 기반
   > 특정 이벤트가 발생 -> 일련의 명령어를 실행
   > ex) Pull Request가 발생시 -> test 수행

Workflows 
 - Repository에 추가된 자동화 된 절차
 - 하나 이상의 Job으로 구성되어 있음
  : 예약된 시점 또는 이벤트에 의한 트리거가 발생한 경우 Job 실행
 - 통상적으로 build / test / package / release / deploy에 사용
 - Repository에서 .github/workflows/ 경로에 yaml 형식으로 저장
  ex) .github/workflows/continuous-deployment.yml

Events
 - Workflow를 trigger하는 특정한 행위
  : ex) github에서 발생할 수 있는 event
     - Repository에 Push
     - Repository에서 Pull Request 생성
 - 외부에서 발생하는 Event는 Github의 Webhook을 이용하여 Workflow를 Trigger

Jobs
 - 하나의 Runner에서 실행되는 Step의 집합
 - Workflow는 여러 개의 Job을 병렬적 처리
  : 서로 다른 Runner가 다수 존재하면, Runner의 수만 큼 병렬성을 가짐
  : Job들이 순차적으로 처리될 수 있도록 Workflow 설정 가능(Job의 의존성)
   > Build와 Test로 된 2개의 순차 Job을 갖는 Workflow -> Test는 Build의 상태에 따라 실행 여부를 결정

Steps
 - Action의 집합
 - Job에서 하나 이상의 실행 명령어를 갖는 개별 태스크
 - 미리 정의된 Action을 수행하거나 Shell 명령어 수행 가능
 - Job에서 각각의 Step은 동일한 Runner에서 실행
  : 개별 Step의 Action들에서 발생하는 데이터는 공유 됨

Actions
 - 독립적인 명령어 ->  Step으로 조합
 - Workflow에서 이식 가능한 가장 작은 블록
 - 새로운 Acion을 만들 수도 있고, Github 커뮤니티에서 만든 것을 사용할 수 도 있음

Runners
 - Github Actions Runner Application이 설치된 서버
  : Github에서 제공하는 Runner
  : 직접 설치하여 운영하는 Runner
 - 사용 가능한 Job 수신
  : 한 번에 1개의 작업(Job) 수행
  : 진행 상황, 로그, 결과를 Github에 보고 
 - 종류
  1. Github-hosted Runner
    : Ubuntu Linux / Microsoft Windows / MacOS 기반
    : Workflow의 각 Job은 새로운 가상환경에서 실행
  2. Self-hosted Runner
    : 미리 준비된 하드웨어 및 설정에서 실행

Github Actions로 다루기
 - Build into Github
  : Github에 완전히 통합 -> 다른 외부 사이트의 CI/CD 필요 없음
 - Multi-container testing
  : Actions는 multi-container를 구성하고 테스트하는 것이 가능
  : Docker / Docker-Compose 지원을 위해 파일을 Workflow에 추가하면 됨 
 - Multiple CI templates
  : 대부분의 종류에 대한 CI 설정 템플릿을 제공 

반응형

'DevOps' 카테고리의 다른 글

#11 인프라 아키텍쳐 변경  (1) 2025.06.11
#10 CI/CD  (1) 2025.06.11
#8 Build Pipeline 관리  (0) 2025.04.26
#7 인프라 구축 테스트의 IaC  (0) 2025.04.26
#6 IaC 개선(구성 관리 도구와 특징)  (0) 2025.04.26