[1주차] GitHub Action에 대한 이해

[월간-CS][24년 4월] React, Next 배포와 배포 자동화 A부터 Z
이민석's avatar
Mar 27, 2024
[1주차] GitHub Action에 대한 이해

이 문서는 [월간-CS][24년 4월] React, Next 배포와 배포 자동화 A부터 Z에서 사용할 GitHub Action에 대한 안내서입니다.

GitHub Action

GitHub 공식 문서를 살펴보면, GitHub Action을 다음과 같이 정의하고 있습니다.

이를 주요 사용 사례에 맞춰서, 간단하게 설명하면 다음과 같습니다.

GitHub Action은 GitHub에서 발생하는 다양한 이벤트를 감지하여, 해당 이벤트에 맞는 적절한 작업을 실행하여 줍니다. 여기서 적절한 작업은 "연속된 스크립트들의 묶음"입니다.

GitHub Action의 다양한 특성들

또한 이를 컴포넌트 특성에 맞춰서 구분하면 다음과 같습니다.

  1. 워크플로(Workflows)

    하나 이상의 잡(Job)을 실행하는 YAML 파일

  2. 이벤트(Events)
    대상 워크플로가 어떠한 조건에서 트리거되는지에 대한 이벤트 트리거 리스트

  3. 잡(Job)

    대상 워크플로에서 실행할 작업들을 잡(Job)으로 정의합니다.
    기본적으로 잡들(Jobs)들은 서로 종속성이 없으며 병렬적으로 실행됩니다.
    하지만 잡들(Jobs)들 간에 순서를 지정하여 직렬적으로 실행할 수 있습니다. 이 경우 서로 종속성이 발생합니다.

    • 기본값, Job A, Job B가 동시에 실행

    • 설정가능, Job A 실행 -> Job B 실행

  4. 행동(Actions)
    복잡하지만 자주 반복되는 작업을 수행하는 GitHub Actions 플랫폼용 사용자 지정 애플리케이션. 길고 복잡한 기능을 Action 형태로 정의해두고 이를 사용할 수 있습니다.
    GitHub Marketplace에서 사용 가능한 행동(Actions)를 찾을 수 있습니다.

  5. 실행자(Runner)
    GitHub이 워크플로를 실행하는 운영체제를 선택합니다. Large Runner나 Custom Runner Hosting 등의 지원이 가능하지만, 저희는 Ubuntu를 선택할 것입니다.

간단하게 보는 코드들

# 이 파일이 1. 워크플로(Workflow)에 해당
name: learn-github-actions

# 5. 실행자(Runner)
run-name: ${{ github.actor }} is learning GitHub Actions

# 2. 이벤트(Event)
on: [push]

# 3. 잡(Job)
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:

      # 4. 행동(Action)
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '14'

      - run: npm install -g bats
      - run: bats -v

Share article

Unchaptered