CI конвейер
CI запускается при каждом push в main и каждом pull request. Он использует умную область видимости для пропуска дорогостоящих задач, когда изменился только код документации или нативный код.
Обзор задач
| Задача | Назначение | Когда запускается |
|---|---|---|
docs-scope | Определение изменений только в документации | Всегда |
changed-scope | Определение измененных областей (node/macos/android) | PR без изменений в docs |
check | Проверка TypeScript типов, линтинг, форматирование | Изменения не только в docs |
check-docs | Линтинг Markdown + проверка битых ссылок | Изменения в docs |
code-analysis | Проверка порога строк кода (1000 строк) | Только PR |
secrets | Обнаружение утечки секретов | Всегда |
build-artifacts | Сборка dist один раз, общий доступ для других задач | Не docs, изменения node |
release-check | Валидация содержимого npm pack | После сборки |
checks | Тесты Node/Bun + проверка протокола | Не docs, изменения node |
checks-windows | Специфичные тесты для Windows | Не docs, изменения node |
macos | Swift линтинг/сборка/тесты + TS тесты | PR с изменениями macos |
android | Gradle сборка + тесты | Не docs, изменения android |
Порядок быстрого отказа
Задачи упорядочены так, что дешевые проверки падают до запуска дорогих:
docs-scope+code-analysis+check(параллельно, ~1-2 мин)build-artifacts(блокируется вышеуказанными)checks,checks-windows,macos,android(блокируется сборкой)
Runners
| Runner | Задачи |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | Большинство Linux задач, включая определение области |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos, ios |
Локальные эквиваленты
bashpnpm check # типы + линтинг + форматирование pnpm test # vitest тесты pnpm check:docs # форматирование docs + линтинг + битые ссылки pnpm release:check # валидация npm pack