GitHub Actions

Seoyeon·2025년 8월 28일
0

백엔드기초

목록 보기
1/17

GitHub Actions

1. 개요

  • GitHub Actions = GitHub에서 제공하는 CI/CD 플랫폼
  • 코드가 push되거나 PR이 열리면 자동으로 빌드 → 테스트 → 배포까지 가능
  • 단순 DevOps 자동화뿐 아니라 이슈 생성, 라벨 추가 등 리포지토리 활동 자동화도 지원
  • 실행 환경: GitHub에서 제공하는 Linux, Windows, macOS VM 또는 직접 준비한 자체 호스트 실행기

2. 구성 요소

(1) 워크플로 (Workflow)

  • 자동화 프로세스의 단위 (하나 이상의 작업 Job을 포함)

  • YAML 파일로 정의 (.github/workflows/ 폴더 안에 저장)

  • 트리거 방식: 이벤트 발생, 수동 실행, 예약 실행(CRON)

  • 예시:

    • PR이 올라오면 빌드 & 테스트
    • release 태그가 생기면 배포

(2) 이벤트 (Event)

  • 워크플로 실행을 트리거하는 GitHub 활동

  • 예시:

    • push, pull_request, issues, schedule, workflow_dispatch(수동 실행)

(3) 작업 (Job)

  • 같은 실행기에서 실행되는 **단계(steps)**들의 집합

  • Job 간은 병렬 실행 가능, 필요하면 종속 관계 설정 가능

  • 예시:

    • Job1: 코드 빌드
    • Job2: Job1 결과물을 테스트 (Job1 완료 후 실행)

(4) 단계 (Step)

  • Job을 구성하는 세부 단위
  • 셸 스크립트 실행 또는 action 호출로 구성
  • 같은 Job 내 단계들은 순차 실행, 데이터 공유 가능

(5) 액션 (Action)

  • 재사용 가능한 코드 조각(태스크)

  • 자주 쓰이는 작업들을 미리 만들어 둔 것 → 불필요한 코드 반복 줄임

  • 예시:

    • 리포지토리 체크아웃: actions/checkout
    • JDK 세팅: actions/setup-java
    • AWS 로그인: aws-actions/configure-aws-credentials
  • 직접 커스텀 액션 작성 가능, GitHub Marketplace에서 가져다 쓰기도 함


(6) 실행기 (Runner)

  • 실제 워크플로 Job을 실행하는 서버
  • GitHub에서 제공하는 가상머신(ubuntu, windows, macOS) 기본 제공
  • 필요하면 직접 자체 호스트 실행기(self-hosted runner) 설정 가능

3. GitHub Actions의 장점

  • GitHub 안에서 바로 CI/CD 가능 (외부 툴 없이)
  • 코드와 파이프라인 정의(YAML)가 같은 리포지토리에 있어 관리 편리
  • 오픈소스/상용 액션을 쉽게 가져다 쓸 수 있음
  • 단순 CI/CD를 넘어 이슈, PR, 라벨링 등 프로젝트 관리 자동화까지 지원

0개의 댓글