GitHub Actions
개요
GitHub Actions는 GitHub에 내장된 CI/CD 시스템입니다. 저장소에 워크플로우를 기술하는 YAML 파일을 추가하면 — push, 풀 리퀘스트, 스케줄 같은 이벤트에 따라 자동으로 실행되는 단계(step)들의 집합입니다. 각 워크플로우는 GitHub이 호스팅하는 머신("러너")에서 실행되므로, 자체 서버를 전혀 관리하지 않고도 코드를 테스트하고 빌드하고 배포할 수 있습니다. "코드 push됨"에서 "앱 라이브"까지의 경로를 자동화하는 가장 흔한 방법입니다.
강점
- GitHub에 바로 내장됨 — 별도의 CI 서비스를 설정할 필요가 없습니다.
- 저장소 이벤트로 트리거됨: 모든 PR마다 테스트 실행, main에 push할 때마다 배포.
- 흔한 작업(설정, 배포, 린트)을 위한 재사용 가능한 액션의 거대한 마켓플레이스.
- Linux, macOS, Windows용 호스팅 러너; 공개 저장소를 위한 넉넉한 무료 시간(minutes).
- 안전한 배포를 위한 시크릿 관리와 환경 보호 기능.
트레이드오프
- YAML 워크플로우는 금세 복잡해지고, 실패하는 파이프라인을 디버깅하는 일은 지루할 수 있습니다.
- 비공개 저장소의 시간은 미터링되며, 많이 쓰면 비용이 듭니다.
- 원격 러너에서 실행되므로 로컬에서 실패를 재현하기가 어색합니다.
- 서드파티 액션은 편리하지만, 검증해야 할 공급망(supply-chain) 의존성입니다.
가장 적합한 경우
저장소에서 곧바로 테스트, 빌드, 배포를 자동화하기 — 모든 풀 리퀘스트마다 테스트 스위트를 실행하고, main이 업데이트될 때마다 호스트(예: Cloudflare Pages)로 출시하기.
바이브 코딩 적합성
GitHub Actions는 에이전트가 파이프라인 전체를 대신 작성할 수 있어 바이브 코딩과 완벽하게 어울립니다. 의존성을 설치하고, 테스트를 실행하고, main에 push할 때 배포하는 워크플로우를 추가하게 하세요 — 에이전트는 흔한 액션 이름과 YAML 형태를 알고 있습니다. 진짜 가치는 안전망입니다. 모든 변경마다 테스트가 자동으로 실행되면, AI가 빌드를 깨는 것을 조용히 머지할 수 없습니다. 팁: 에이전트에게 호스트와 패키지 매니저를 알려주어 올바른 배포 액션과 캐시 설정을 고르게 하고, 시크릿은 YAML이 아니라 저장소 설정에 보관하세요.
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
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