Pipeline CI
La CI viene eseguita ad ogni push su main e ad ogni pull request. Utilizza uno scoping intelligente per saltare i job costosi quando sono cambiati solo documenti o codice nativo.
Panoramica dei job
| Job | Scopo | Quando viene eseguito |
|---|---|---|
docs-scope | Rileva modifiche solo ai documenti | Sempre |
changed-scope | Rileva quali aree sono cambiate (node/macos/android) | PR non solo documenti |
check | Tipi TypeScript, lint, format | Modifiche non solo documenti |
check-docs | Lint Markdown + controllo link interrotti | Documenti modificati |
code-analysis | Controllo soglia LOC (1000 righe) | Solo PR |
secrets | Rileva segreti trapelati | Sempre |
build-artifacts | Build dist una volta, condividi con altri job | Non documenti, modifiche node |
release-check | Valida contenuti npm pack | Dopo build |
checks | Test Node/Bun + controllo protocollo | Non documenti, modifiche node |
checks-windows | Test specifici per Windows | Non documenti, modifiche node |
macos | Swift lint/build/test + test TS | PR con modifiche macos |
android | Build Gradle + test | Non documenti, modifiche android |
Ordine fail-fast
I job sono ordinati in modo che i controlli economici falliscano prima che vengano eseguiti quelli costosi:
docs-scope+code-analysis+check(paralleli, ~1-2 min)build-artifacts(bloccato sui precedenti)checks,checks-windows,macos,android(bloccati su build)
Runner
| Runner | Job |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | La maggior parte dei job Linux, incluso il rilevamento dello scope |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos, ios |
Equivalenti locali
bashpnpm check # tipi + lint + format pnpm test # test vitest pnpm check:docs # format + lint + link interrotti documenti pnpm release:check # valida npm pack