GitHub Actions 완전 정복🔥

개발 프로세스에서 가장 중요한 키워드는 자동화입니다.
CI/CD(지속적 통합 / 지속적 배포)는 이제 모든 개발자에게 필수 개념이 되었고, 이를 가장 쉽게 구현할 수 있는 도구 중 하나가 바로 GitHub Actions입니다.

이번 글에서는 GitHub Actions의 핵심 개념과 실제 사용 예시를 빠르게 정리해 드리겠습니다.

GitHub Actions 핵심 개념 5가지

GitHub Actions는 이벤트 기반으로 자동화 작업을 실행하는 도구입니다. 딱 5가지 핵심 개념만 이해하면 충분합니다.

1. Event (이벤트)
– 어떤 상황에서 워크플로우가 실행될지 지정
– 예: push, pull_request, issue 생성 등

2. Workflow (워크플로우)
– 이벤트 발생 시 실행되는 자동화 시나리오(레시피)
.github/workflows/*.yml 파일에 정의

3. Job (잡)
– 하나의 독립적인 실행 단위
– 여러 잡을 병렬 또는 순차적으로 실행 가능

4. Step (스텝)
– 잡 안에서 실행되는 작은 작업 단위
– 쉘 명령어 실행 또는 액션(Action) 호출

5. Runner (러너)
– 잡이 실행되는 환경 (VM 또는 컨테이너)
– 예: ubuntu-latest, windows-latest, macos-latest

GitHub Actions 기본 동작 방식

GitHub Actions 완전 정복

1. 특정 이벤트(예: push)가 발생
2. 정의된 Workflow 파일 실행
3. Job 단위로 러너에서 실행
4. Step 단위로 순서대로 실행
5. 결과를 GitHub에서 확인 가능

테스트 실패 시 워크플로우가 중단되고, Pull Request에 바로 표시되므로 코드 품질을 보장할 수 있습니다.

실제 예시 (Node.js 프로젝트 테스트 자동화)

.github/workflows/ci.yml 파일을 생성하고 다음과 같이 작성합니다.

name: Sample CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 14
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test

push, pull_request 이벤트 발생 시 실행
– Node.js 환경 세팅 후 자동으로 npm install, npm test 수행
– 테스트 실패 시 바로 PR에서 확인 가능

GitHub Actions 장점

– GitHub에 내장되어 있어 추가 인프라 불필요
– 수천 개의 오픈소스 액션을 바로 활용 가능
– 프로젝트에 맞는 CI/CD 파이프라인을 쉽게 구축 가능
– 코드 품질과 배포 자동화로 개발 생산성 극대화

정리

GitHub Actions는 이제 선택이 아닌 필수 도구입니다.
CI/CD 자동화를 통해 개발 효율성과 코드 품질을 동시에 확보할 수 있습니다.

1. Event
2. Workflow
3. Job
4. Step
5. Runner

이 5가지 개념만 이해하면 누구나 GitHub Actions를 바로 활용할 수 있습니다.