개요
GitHub Actions는 GitHub에 내장된 CI/CD 및 워크플로 자동화 플랫폼입니다. YAML 기반으로 빌드, 테스트, 배포 파이프라인을 정의하며, GitHub 이벤트(push, PR, issue 등)에 반응하여 자동 실행됩니다. 20,000개 이상의 마켓플레이스 액션으로 확장 가능합니다.
- 제공: GitHub (Microsoft)
- 유형: 클라우드 (셀프호스팅 러너 지원)
- 무료: 퍼블릭 리포 무제한, 프라이빗 2,000분/월
핵심 개념
| 개념 | 설명 |
|---|---|
| Workflow | .github/workflows/*.yml에 정의된 자동화 프로세스 |
| Event | 워크플로를 트리거하는 이벤트 (push, pull_request, schedule 등) |
| Job | 동일 러너에서 실행되는 스텝 그룹 |
| Step | 개별 작업 단위 (액션 또는 셸 명령) |
| Action | 재사용 가능한 작업 단위 (마켓플레이스) |
| Runner | 워크플로를 실행하는 서버 (GitHub-hosted / Self-hosted) |
워크플로 예시
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm test
deploy:
needs: build-and-test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: ./deploy.sh주요 기능
- 매트릭스 빌드: 여러 OS/언어 버전 조합으로 병렬 테스트
- 캐싱: 의존성 캐시로 빌드 속도 향상 (
actions/cache) - 시크릿 관리: 환경 변수로 민감 정보 안전 관리
- OIDC: 클라우드 리소스에 토큰 없이 인증
- Reusable Workflows: 워크플로 재사용 및 공유
- 환경 보호 규칙: 프로덕션 배포 전 수동 승인