CI 파이프라인
CI는 main에 대한 모든 푸시와 풀 리퀘스트에서 실행됩니다. 스마트 범위 판별을 통해 관련 없는 영역만 변경된 경우 비용이 큰 작업을 건너뜁니다.
작업 개요
| 작업 | 목적 | 실행 조건 |
|---|---|---|
docs-scope | 문서만 변경됐는지 감지 | 항상 |
changed-scope | 변경된 영역 감지 (node/macos/android/windows) | 문서 외 변경 |
check | TypeScript 타입, 린트, 포맷 검사 | 문서 외, node 변경 |
check-docs | Markdown 린트 + 깨진 링크 검사 | 문서 변경 |
secrets | 유출된 시크릿 감지 | 항상 |
build-artifacts | dist 한 번 빌드, release-check와 공유 | main 푸시, node 변경 |
release-check | npm pack 내용 검증 | main 푸시 후 빌드 완료 |
checks | PR에서 Node 테스트 + 프로토콜 검사; 푸시 시 Bun 호환성 | 문서 외, node 변경 |
compat-node22 | 최소 지원 Node 런타임 호환성 | main 푸시, node 변경 |
checks-windows | Windows 전용 테스트 | 문서 외, windows 관련 변경 |
macos | Swift 린트/빌드/테스트 + TS 테스트 | macOS 변경이 있는 PR |
android | Gradle 빌드 + 테스트 | 문서 외, android 변경 |
실패 우선 순서
비용이 낮은 검사가 먼저 실패하도록 작업 순서를 배치합니다.
docs-scope+changed-scope+check+secrets(병렬, 저비용 게이트 우선)- PR:
checks(Linux Node 테스트 2개 샤드 분할),checks-windows,macos,android main푸시:build-artifacts+release-check+ Bun 호환성 +compat-node22
범위 판별 로직은 scripts/ci-changed-scope.mjs에 있으며, src/scripts/ci-changed-scope.test.ts에서 유닛 테스트로 검증합니다.
러너
| 러너 | 작업 |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | 범위 감지를 포함한 대부분의 Linux 작업 |
blacksmith-32vcpu-windows-2025 | checks-windows |
macos-latest | macos, ios |
로컬 실행 명령어
pnpm check # 타입 + 린트 + 포맷
pnpm test # vitest 테스트
pnpm check:docs # 문서 포맷 + 린트 + 깨진 링크
pnpm release:check # npm pack 검증