CI Pipeline
CI हर main पर push और हर pull request पर चलता है। यह केवल docs या native code बदलने पर महंगे jobs को skip करने के लिए स्मार्ट scoping का उपयोग करता है।
Job अवलोकन
| Job | उद्देश्य | कब चलता है |
|---|---|---|
docs-scope | केवल-docs परिवर्तनों का पता लगाना | हमेशा |
changed-scope | पता लगाना कि कौन से क्षेत्र बदले (node/macos/android) | गैर-docs PRs |
check | TypeScript types, lint, format | गैर-docs परिवर्तन |
check-docs | Markdown lint + टूटे लिंक की जांच | Docs बदले |
code-analysis | LOC थ्रेशोल्ड जांच (1000 lines) | केवल PRs |
secrets | लीक हुए secrets का पता लगाना | हमेशा |
build-artifacts | एक बार dist बनाएं, अन्य jobs के साथ साझा करें | गैर-docs, node परिवर्तन |
release-check | npm pack सामग्री मान्य करें | build के बाद |
checks | Node/Bun tests + protocol जांच | गैर-docs, node परिवर्तन |
checks-windows | Windows-विशिष्ट tests | गैर-docs, node परिवर्तन |
macos | Swift lint/build/test + TS tests | macos परिवर्तनों वाले PRs |
android | Gradle build + tests | गैर-docs, android परिवर्तन |
Fail-Fast क्रम
Jobs को इस तरह क्रमबद्ध किया गया है कि महंगे jobs चलने से पहले सस्ते checks विफल हों:
docs-scope+code-analysis+check(समानांतर, ~1-2 मिनट)build-artifacts(ऊपर पर अवरुद्ध)checks,checks-windows,macos,android(build पर अवरुद्ध)
Runners
| Runner | Jobs |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | अधिकांश Linux jobs, scope पता लगाने सहित |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos, ios |
स्थानीय समकक्ष
bashpnpm check # types + lint + format pnpm test # vitest tests pnpm check:docs # docs format + lint + broken links pnpm release:check # validate npm pack