메인 콘텐츠로 건너뛰기

CI 파이프라인

CI는 main에 대한 모든 push와 모든 pull request에서 실행됩니다. 문서만 변경되었거나 native code만 변경되었을 때 비용이 큰 job을 건너뛰기 위해 smart scoping을 사용합니다.

Job 개요

Job목적실행 시점
docs-scopedocs-only 변경 감지항상
changed-scope어떤 영역이 바뀌었는지 감지(node/macos/android/windows)docs가 아닌 PR
checkTypeScript types, lint, formatmain push, 또는 Node 관련 변경이 있는 PR
check-docsMarkdown lint + broken link checkDocs 변경 시
code-analysisLOC threshold check (1000 lines)PR 전용
secretsleaked secrets 감지항상
build-artifactsdist를 한 번 빌드해 다른 jobs와 공유docs가 아니고 node 변경이 있을 때
release-checknpm pack contents 검증build 후
checksNode/Bun tests + protocol checkdocs가 아니고 node 변경이 있을 때
checks-windowsWindows 전용 testsdocs가 아니고 windows 관련 변경이 있을 때
macosSwift lint/build/test + TS testsmacos 변경이 있는 PR
androidGradle build + testsdocs가 아니고 android 변경이 있을 때

Fail-Fast 순서

Job은 비용이 큰 작업이 실행되기 전에 비용이 낮은 검사가 먼저 실패하도록 순서가 정해져 있습니다.
  1. docs-scope + code-analysis + check (병렬, 약 1-2분)
  2. build-artifacts (위 단계가 끝난 뒤)
  3. checks, checks-windows, macos, android (build가 끝난 뒤)
범위 판별 로직은 scripts/ci-changed-scope.mjs에 있고, 단위 테스트는 src/scripts/ci-changed-scope.test.ts에 있습니다.

Runners

RunnerJobs
blacksmith-16vcpu-ubuntu-2404대부분의 Linux jobs, scope detection 포함
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos, ios

로컬 대응 명령

pnpm check          # types + lint + format
pnpm test           # vitest tests
pnpm check:docs     # docs format + lint + broken links
pnpm release:check  # validate npm pack