DevOps/CI&CD

[Github Actions] 1. GitHub Actions 이해

noahkim_ 2023. 10. 29. 22:53

1. Overview

  • GitHub Actions는 CI/CD 플랫폼입니다.
  • 빌드 - 테스트 - 배포 를 자동화할 수 있습니다.
  • Repository의 다양한 이벤트가 발생할 때 Workflow를 실행합니다.
  • 데이터 센터나 클라우드 인프라를 사용하기 위한 Virtual Machine을 호스팅해줍니다.

 

2. The Components of GitHub Actions

  • Workflow는 저장소에서 발생하는 이벤트에 따라 트리거 될 수 있습니다.
  • Workflow에는 하나 이상의 Job이 포함되면 각 Job은 다양한 Step을 포함합니다.
  • 작업은 가상 머신 러너나 컨테이너 내에서 실행됩니다.
  • Action은 Workflow를 단순화하기 위한 재사용 가능한 확장 기능입니다.

 

3. Create an example workflow

  • GitHub Actions는 Workflow를 정의하기 위해 YAML 문법을 사용합니다.
  • 코드가 푸쉬될 때마다 일련의 명령어를 자동으로 트리거합니다.

 

Workflows

  • 하나 이상의 job을 실행하는 설정 가능한 자동화 프로세스 입니다.
  • .github/workflows 디렉토리에 해당 파일을 저장합니다.
  • 저장소 내의 이벤트에 따라 트리거 될 수 있습니다.
  • 다양한 작업을 수행하는 워크플로우를 가질 수 있습니다.

 

Events

  • 워크플로우 실행을 트리거하는 저장소 내의 특정 활동입니다.
  • ex) Pull Request, Issue, Commit push

 

Jobs

  • 같은 러너에서 실행되는 워크플로우의 일련의 단계입니다.
  • 각 단계는 쉘 스크립트 또는 실행될 액션입니다.
  • 다른 작업에 의존성을 설정할 수 있습니다.

 

Actions

  • GitHub Actions 플랫폼을 위한 사용자 정의 애플리케이션 입니다.
  • 작업의 반복 코드를 줄이기 위해 사용됩니다.
  • GitHub Marketplace에서 액션을 찾거나 직접 작성할 수 있습니다.

 

Runners

  • 트리거 될 때 워크플로우를 실행하는 서버입니다.
  • GitHub에서 호스팅 서버를 제공합니다.
  • 사용자가 직접 서버를 호스팅할 수 있습니다.

 

 

4. Understanding the workflow file

name: learn-github-actions
run-name: ${{ github.actor }} is learning GitHub Actions
on: [push]
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v
  • name : 워크플로우의 이름을 설정합니다.
  • run-name : 워크플로우에 생성된 실행의 이름을 설정합니다.
  • on: 워크플로우의 트리거를 지정합니다.
  • jobs : 워크플로우의 모든 작업을 그룹화합니다.
    • check-bats-version : job의 이름을 정의합니다.
      • runs-on : 작업이 GitHub에서 호스팅하는 Ubuntu-latest 버전의 Runner로 지정합니다.
        • steps : check-bats-version 작업에서 실행되는 모든 단계를 그룹화합니다.
          • use : 액션을 사용하여 작업을 수행합니다.
          • run : 명령어를 사용하여 작업을 수행합니다. 

 

 

출처