Pipeline de CI

El CI se ejecuta en cada push a main y en cada pull request. Usa filtros de alcance inteligentes para omitir jobs costosos cuando solo cambiaron áreas no relacionadas.

Resumen de jobs

JobPropósitoCuándo se ejecuta
docs-scopeDetectar cambios solo en docsSiempre
changed-scopeDetectar qué áreas cambiaron (node/macos/android/windows)Cambios fuera de docs
checkTipos TypeScript, lint, formatoFuera de docs, cambios en node
check-docsLint de Markdown + verificación de enlaces rotosDocs modificados
secretsDetectar secretos filtradosSiempre
build-artifactsCompilar dist una vez, compartir con release-checkPushes a main, cambios en node
release-checkValidar contenido de npm packPushes a main tras build
checksTests de Node + verificación de protocolo en PRs; compat Bun en pushFuera de docs, cambios en node
compat-node22Compatibilidad con el runtime mínimo soportado de NodePushes a main, cambios en node
checks-windowsTests específicos de WindowsFuera de docs, cambios de windows
macosLint/build/test de Swift + tests de TSPRs con cambios en macos
androidBuild Gradle + testsFuera de docs, cambios en android

Orden fail-fast

Los jobs se ordenan para que las verificaciones baratas fallen antes de ejecutar las costosas:

  1. docs-scope + changed-scope + check + secrets (en paralelo, filtros baratos primero)
  2. PRs: checks (tests de Node en Linux divididos en 2 shards), checks-windows, macos, android
  3. Pushes a main: build-artifacts + release-check + compat Bun + compat-node22

La lógica de alcance está en scripts/ci-changed-scope.mjs y tiene cobertura de tests unitarios en src/scripts/ci-changed-scope.test.ts.

Runners

RunnerJobs
blacksmith-16vcpu-ubuntu-2404La mayoría de jobs en Linux, incluida detección de alcance
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos, ios

Equivalentes locales

pnpm check          # tipos + lint + formato
pnpm test           # tests de vitest
pnpm check:docs     # formato de docs + lint + enlaces rotos
pnpm release:check  # validar npm pack