본문 바로가기
Programming

GitHub Actions의 구조와 활용법

by 느리게 걷는 즐거움 2024. 7. 28.
반응형

GitHub Actions의 구조와 활용법

GitHub Actions는 코드 리포지토리에 대한 이벤트 기반 워크플로우 자동화를 제공하는 강력한 도구입니다. 이를 통해 Continuous Integration (CI) 및 Continuous Deployment (CD) 파이프라인을 손쉽게 설정하고 관리할 수 있습니다. 이번 글에서는 GitHub Actions의 기본 구조와 주요 개념, 예제를 통해 활용법을 알아보겠습니다.

1. GitHub Actions의 기본 구조

GitHub Actions는 주로 워크플로우(Workflow), 작업(Job), 스텝(Step), 액션(Action)의 네 가지 구성 요소로 이루어져 있습니다.

워크플로우 (Workflow)

워크플로우는 자동화된 프로세스의 정의입니다. 프로젝트의 `.github/workflows/` 디렉터리에 YAML 파일로 저장되며, 특정 이벤트가 발생할 때 실행됩니다.

name: CI Workflow

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Check out code
        uses: actions/checkout@v2
      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'
      - name: Install dependencies
        run: npm install
      - name: Run tests
        run: npm test
작업 (Job)

각 워크플로우는 하나 이상의 작업으로 구성됩니다. 작업은 여러 스텝을 포함하며, 각 스텝은 순차적으로 실행됩니다. 모든 작업은 병렬로 실행되지만, 필요에 따라 의존성을 설정할 수 있습니다.

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Check out code
        uses: actions/checkout@v2
      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'
스텝 (Step)

스텝은 각 작업 내에서 실행되는 개별 명령어 또는 액션입니다. 스텝은 순차적으로 실행되며, 각 스텝은 스크립트를 실행하거나 재사용 가능한 액션을 호출할 수 있습니다.

steps:
  - name: Check out code
    uses: actions/checkout@v2
  - name: Run a one-line script
    run: echo "Hello, World!"

액션 (Action)

액션은 재사용 가능한 작업 단위입니다. 커뮤니티가 제공하는 다양한 액션을 GitHub 마켓플레이스에서 찾을 수 있으며, 직접 작성할 수도 있습니다.

- name: Set up Node.js
  uses: actions/setup-node@v2
  with:
    node-version: '14'

2. GitHub Actions의 주요 기능

기능 설명
자동화된 테스트 코드 변경 시 자동으로 테스트를 실행하여 품질을 유지합니다.
빌드 및 배포 코드를 자동으로 빌드하고 다양한 환경에 배포합니다.
CI/CD 파이프라인 복잡한 CI/CD 파이프라인을 설정하여 다양한 작업을 자동화합니다.
이벤트 기반 트리거 커밋, PR, 이슈 생성 등 다양한 이벤트를 기반으로 워크플로우를 트리거합니다.
비밀 관리 GitHub Actions에서 비밀값을 안전하게 관리하고 사용할 수 있습니다.

 

3. GitHub Actions 예제

아래는 새로운 커밋이 `main` 브랜치에 푸시될 때마다 실행되는 간단한 CI 워크플로우 예제입니다.

name: CI Workflow

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install dependencies
        run: npm install

      - name: Run tests
        run: npm test

이 워크플로우는 `main` 브랜치에 커밋이 푸시될 때마다 다음 작업을 수행합니다:

순서 과정
1 저장소 코드를 체크아웃합니다.
2 Node.js 환경을 설정합니다.
3 프로젝트의 종속성을 설치합니다.
4 테스트를 실행합니다.

 

4. GitHub Actions 설정 방법

과정 설명
워크플로우 파일 생성 프로젝트의 `.github/workflows/` 디렉토리에 YAML 파일을 생성합니다.
워크플로우 정의 원하는 자동화 작업을 YAML 파일에 정의합니다.
커밋 및 푸시 정의된 워크플로우 파일을 저장소에 커밋하고 푸시합니다.
실행 확인 GitHub 저장소의 Actions 탭에서 워크플로우 실행 상태를 확인할 수 있습니다.

결론

GitHub Actions는 프로젝트의 CI/CD 프로세스를 자동화하고 효율적으로 관리할 수 있는 강력한 도구입니다. 기본 구조와 개념을 이해하고 나면, 다양한 이벤트와 액션을 활용하여 복잡한 자동화 작업을 손쉽게 설정할 수 있습니다. 

 

반응형

'Programming' 카테고리의 다른 글

Let the Cat Out of the Bag  (0) 2024.08.01
Github Action 특정시간 동작  (0) 2024.07.28
Use Case Diagram 작성 방법  (1) 2024.07.26
git patch 만들기와 적용하기  (0) 2024.07.24
Git 변경이력 확인하기 (git blame)  (2) 2024.07.24