CI Pipeline
CI запускається при кожному push до main та кожному pull request. Він використовує розумну область дії, щоб пропускати дорогі завдання, коли змінилися лише документи або нативний код.
Огляд завдань
| Завдання | Призначення | Коли запускається |
|---|---|---|
docs-scope | Виявлення змін лише в документації | Завжди |
changed-scope | Виявлення змінених областей (node/macos/android) | Не-документальні PR |
check | Типи TypeScript, lint, format | Зміни не в документації |
check-docs | Lint Markdown + перевірка зламаних посилань | Зміни в документації |
code-analysis | Перевірка порогу LOC (1000 рядків) | Тільки PR |
secrets | Виявлення витоків секретів | Завжди |
build-artifacts | Збірка dist один раз, спільне використання | Не-документи, зміни node |
release-check | Перевірка вмісту npm pack | Після збірки |
checks | Тести Node/Bun + перевірка протоколу | Не-документи, зміни node |
checks-windows | Тести для Windows | Не-документи, зміни node |
macos | Swift lint/build/test + тести TS | PR зі змінами macos |
android | Gradle build + тести | Не-документи, зміни 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 # типи + lint + format pnpm test # тести vitest pnpm check:docs # format документів + lint + зламані посилання pnpm release:check # перевірка npm pack