Contribuyendo

Pipeline CI

La CI se ejecuta en cada push a main y en cada pull request. Utiliza un alcance inteligente para omitir trabajos costosos cuando solo cambian documentación o código nativo.

Resumen de Trabajos

TrabajoPropósitoCuándo se ejecuta
docs-scopeDetectar cambios solo en documentaciónSiempre
changed-scopeDetectar qué áreas cambiaron (node/macos/android/windows)PRs que no son de documentación
checkTipos de TypeScript, lint, formatoPush a main, o PRs con cambios relevantes para Node
check-docsLint de Markdown + verificación de enlaces rotosDocumentación cambiada
code-analysisVerificación de umbral de LOC (1000 líneas)Solo PRs
secretsDetectar secretos filtradosSiempre
build-artifactsConstruir dist una vez, compartir con otros trabajosCambios no de documentación, cambios en node
release-checkValidar contenido de npm packDespués de la construcción
checksPruebas Node/Bun + verificación de protocoloCambios no de documentación, cambios en node
checks-windowsPruebas específicas de WindowsCambios no de documentación, cambios relevantes para windows
macosLint/construcción/pruebas de Swift + pruebas TSPRs con cambios en macos
androidConstrucción Gradle + pruebasCambios no de documentación, cambios en android

Orden de Fallo Rápido

Los trabajos están ordenados para que las verificaciones baratas fallen antes de que se ejecuten las costosas:

  1. docs-scope + code-analysis + check (paralelo, ~1-2 min)
  2. build-artifacts (bloqueado por lo anterior)
  3. checks, checks-windows, macos, android (bloqueado por la construcción)

La lógica de alcance reside en scripts/ci-changed-scope.mjs y está cubierta por pruebas unitarias en src/scripts/ci-changed-scope.test.ts.

Ejecutores

EjecutorTrabajos
blacksmith-16vcpu-ubuntu-2404La mayoría de trabajos Linux, incluyendo detección de alcance
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos, ios

Equivalentes Locales

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

Flujo de Desarrollo PiHubs de Documentación