Introduction to GitHub Actions

Github Action Introduction

What are GitHub Actions? GitHub Actions makes it easy to automate all your software workflows.

Github Action은 Github에서 제공하는 CI/CD 도구이다. CI/CD가 적용된 프로젝트는 코드가 레파지토리에 반영되면, 자동으로 테스트를 거쳐 배포한다.

추상화 시켜보면, 레파지토리에 자신의 이벤트 핸들러를 등록하는 것이다.

코드가 반영되면, 자동화 테스트 ... 배포한다.
-----------  -------------------
   event      action (handler)

Overview

Github Action은 어떻게 자동적으로 테스트를 실행 할 수 있을까? diagram

이벤트가 발생하면, 워크-플로우(Workflow)를 트리거한다. 워크-플로우는 잡(Job)을 가지고 있고, 잡은 여러 스텝으로 구성 된다. 각 스텝에서 테스트와 같은 액션(Action)을 실행 시킬 수 있다.

Event -> Workflow -> Job -> Step -> Action

Component

Example

example

name: learn-github-actions # 워크-플로우의 이름
on: [push] # 이벤트 (push가 되었을 때 잡들을 실행)
jobs:
  check-bats-version: # Job 이름
    runs-on: ubuntu-latest # 러너; 우분투에서 실행
    steps: # Job을 구성하는 스텝들, 아래부터 순차적으로 실행
      - uses: actions/checkout@v2 # * 깃헙 액션이, 레파지토리에 접근 할 수 있도록 허용 *
      - uses: actions/setup-node@v2 # 노드를 설치하는 미리 정의 된 액션 실행
        with:
          node-version: '14' # 노드 액션에 파라미터 제공
      - run: npm install -g bats # 노드 환경이 갖춰져서 bats 실행
      - run: bats -v # bats 버전 확인