코드를 푸시하면 서버에 자동 배포된다고?
Git의 활용은 코드를 백업하는 것을 넘어, 코드가 GitHub에 도달했을 때 무언가 액션을 취하게 만드는 CI/CD (지속적 통합/배포) 에서 진정한 빛을 발합니다.
1. GitHub Actions 핵심 트리거
| 이벤트 (Event) |
동작 조건 |
주요 활용 사례 |
| push |
특정 브랜치에 코드가 푸시되었을 때 |
main 브랜치 푸시 시 자동 실서버 배포 (CI/CD) |
| pull_request |
PR이 생성되거나 업데이트되었을 때 |
코드 병합 전 단위 테스트(Unit Test) 및 린트(Lint) 검사 |
| schedule |
크론(Cron) 표현식에 따른 정기적 실행 |
매일 밤 자정 백업 작업, 주기적인 크롤링 |
| workflow_dispatch |
GitHub 페이지에서 수동으로 버튼 클릭 |
원할 때만 실행하는 수동 릴리스 배포, 수동 트리거 |
2. 실전: Next.js 배포 파이프라인 (.yml)
.github/workflows/main.yml
name: Next.js CI/CD Pipeline
on:
push:
branches: [ "main" ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: 📦 저장소 코드 체크아웃
uses: actions/checkout@v4
- name: ⚙️ Node.js 환경 세팅
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: 📥 의존성 패키지 설치
run: npm ci
- name: 🏗️ Next.js 프로젝트 빌드
run: npm run build
- name: 🚀 서버 배포 (예: AWS EC2)
run: echo "배포 스크립트를 여기에 작성합니다!"
[1/5] 📦 저장소 코드 체크아웃 ... Done (0s)
[2/5] ⚙️ Node.js 환경 세팅 ... Done (1s)
[3/5] 📥 의존성 패키지 설치 ... Done (5s)
> next build
[4/5] 🏗️ Next.js 프로젝트 빌드 ... Done (14s)
[5/5] 🚀 서버 배포 (예: AWS EC2) ... Done (2s)
🎉 Job "build-and-deploy" completed successfully in 22s.