CI Pipeline
CI berjalan pada setiap push ke main dan setiap pull request. Ini menggunakan scoping pintar untuk melewati job yang mahal ketika hanya dokumen atau kode native yang berubah.
Ringkasan Job
| Job | Tujuan | Kapan dijalankan |
|---|---|---|
docs-scope | Deteksi perubahan docs-only | Selalu |
changed-scope | Deteksi area mana yang berubah (node/macos/android) | PR non-docs |
check | Tipe TypeScript, lint, format | Perubahan non-docs |
check-docs | Markdown lint + pemeriksaan broken link | Docs berubah |
code-analysis | Pemeriksaan threshold LOC (1000 baris) | PR only |
secrets | Deteksi secret yang bocor | Selalu |
build-artifacts | Build dist sekali, bagikan dengan job lain | Non-docs, perubahan node |
release-check | Validasi konten npm pack | Setelah build |
checks | Tes Node/Bun + pemeriksaan protokol | Non-docs, perubahan node |
checks-windows | Tes spesifik Windows | Non-docs, perubahan node |
macos | Swift lint/build/test + tes TS | PR dengan perubahan macos |
android | Gradle build + tes | Non-docs, perubahan android |
Urutan Fail-Fast
Job diurutkan sehingga pemeriksaan murah gagal sebelum yang mahal dijalankan:
docs-scope+code-analysis+check(paralel, ~1-2 menit)build-artifacts(diblokir di atas)checks,checks-windows,macos,android(diblokir pada build)
Runner
| Runner | Job |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | Sebagian besar job Linux, termasuk deteksi scope |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos, ios |
Ekuivalen Lokal
bashpnpm check # types + lint + format pnpm test # vitest tests pnpm check:docs # docs format + lint + broken links pnpm release:check # validate npm pack