main으로 push 또는 pull_request가 들어오면 같은 검증을 시작한다.
.github/workflows/ci.yml
GitHub Actions CI는 이벤트, 작업, 단계, 증거로 읽는다
YAML의 들여쓰기는 실행 관계입니다. trigger가 job을 만들고, job 안의 steps가 테스트 판정을 남깁니다.
ubuntu-latest 러너에서 Node 18.x, 20.x 매트릭스로 호환성을 본다.
- 의존성 고정 설치
npm ci - 빌드 가능성
npm run build - 단위 테스트
npm run test - E2E 테스트
npm run test:e2e - 커버리지 기준
npm run test:cov
coverage HTML, 실패 로그, 스크린샷처럼 나중에 원인을 볼 자료를 보존한다.
cache: npm은 설치 시간을 줄이지만, 정확한 설치 기준은 package-lock과 npm ci가 잡는다.
matrix는 같은 테스트를 여러 Node 버전에서 반복해 런타임 차이를 찾는다.
if: always()는 앞 단계가 실패해도 디버깅 자료를 업로드하게 한다.