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 |