CI 파이프라인
CI는 main에 대한 모든 푸시와 모든 풀 리퀘스트에서 실행됩니다. 스마트 스코핑을 사용하여 문서 또는 네이티브 코드만 변경된 경우 비용이 많이 드는 작업을 건너뜁니다.
작업 개요
| 작업 | 목적 | 실행 시기 |
|---|---|---|
docs-scope | 문서 전용 변경 감지 | 항상 |
changed-scope | 변경된 영역 감지 (node/macos/android) | 문서가 아닌 PR |
check | TypeScript 타입, 린트, 포맷 | 문서가 아닌 변경 |
check-docs | 마크다운 린트 + 깨진 링크 확인 | 문서 변경 |
code-analysis | LOC 임계값 확인 (1000줄) | PR만 |
secrets | 유출된 비밀 감지 | 항상 |
build-artifacts | dist를 한 번 빌드하고 다른 작업과 공유 | 문서가 아닌, node 변경 |
release-check | npm pack 내용 검증 | 빌드 후 |
checks | Node/Bun 테스트 + 프로토콜 확인 | 문서가 아닌, node 변경 |
checks-windows | Windows 전용 테스트 | 문서가 아닌, node 변경 |
macos | Swift 린트/빌드/테스트 + TS 테스트 | macos 변경이 있는 PR |
android | Gradle 빌드 + 테스트 | 문서가 아닌, android 변경 |
빠른 실패 순서
작업은 저렴한 확인이 비용이 많이 드는 작업이 실행되기 전에 실패하도록 순서가 지정됩니다:
docs-scope+code-analysis+check(병렬, ~1-2분)build-artifacts(위에서 차단됨)checks,checks-windows,macos,android(빌드에서 차단됨)
러너
| 러너 | 작업 |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | 스코프 감지를 포함한 대부분의 Linux 작업 |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos, ios |
로컬 동등물
bashpnpm check # 타입 + 린트 + 포맷 pnpm test # vitest 테스트 pnpm check:docs # 문서 포맷 + 린트 + 깨진 링크 pnpm release:check # npm pack 검증