Saltar al contenido principal

Pipeline de CI

La CI se ejecuta en cada push a main y en cada pull request. Usa un alcance inteligente para omitir trabajos costosos cuando solo cambiaron áreas no relacionadas.

Resumen de trabajos

JobPropósitoCuándo se ejecuta
preflightDetectar cambios solo de documentación, alcances modificados, extensiones modificadas y compilar el manifiesto de CISiempre en pushes y PR no borrador
security-fastDetección de claves privadas, auditoría de workflows mediante zizmor, auditoría de dependencias de producciónSiempre en pushes y PR no borrador
build-artifactsCompilar dist/ y la Control UI una vez, y subir artefactos reutilizables para trabajos posterioresCambios relevantes para Node
checks-fast-coreRutas rápidas de corrección en Linux, como comprobaciones de contratos bundled/plugin/protocolCambios relevantes para Node
checks-fast-extensionsAgregar las rutas fragmentadas de extensiones después de que se complete checks-fast-extensions-shardCambios relevantes para Node
extension-fastPruebas enfocadas solo para los plugins integrados modificadosCuando se detectan cambios en extensiones
checkPuerta local principal en CI: pnpm check más pnpm build:strict-smokeCambios relevantes para Node
check-additionalProtecciones de arquitectura y límites, más el arnés de regresión de observación del gatewayCambios relevantes para Node
build-smokePruebas smoke de la CLI compilada y smoke de memoria al inicioCambios relevantes para Node
checksRutas Linux Node más pesadas: pruebas completas, pruebas de canales y compatibilidad con Node 22 solo en pushCambios relevantes para Node
check-docsComprobaciones de formato, lint y enlaces rotos de la documentaciónCuando cambia la documentación
skills-pythonRuff + pytest para Skills respaldadas por PythonCambios relevantes para Skills de Python
checks-windowsRutas de prueba específicas de WindowsCambios relevantes para Windows
macos-nodeRuta de pruebas TypeScript en macOS usando los artefactos compilados compartidosCambios relevantes para macOS
macos-swiftLint, compilación y pruebas de Swift para la app de macOSCambios relevantes para macOS
androidMatriz de compilación y pruebas de AndroidCambios relevantes para Android

Orden de fallo rápido

Los trabajos están ordenados para que las comprobaciones baratas fallen antes de que se ejecuten las costosas:
  1. preflight decide qué rutas existen realmente. La lógica docs-scope y changed-scope son pasos dentro de este trabajo, no trabajos independientes.
  2. security-fast, check, check-additional, check-docs y skills-python fallan rápidamente sin esperar a los trabajos más pesados de artefactos y matrices de plataforma.
  3. build-artifacts se superpone con las rutas rápidas de Linux para que los consumidores posteriores puedan comenzar en cuanto la compilación compartida esté lista.
  4. Después se abren en abanico las rutas más pesadas de plataforma y tiempo de ejecución: checks-fast-core, checks-fast-extensions, extension-fast, checks, checks-windows, macos-node, macos-swift y android.
La lógica de alcance vive en scripts/ci-changed-scope.mjs y está cubierta por pruebas unitarias en src/scripts/ci-changed-scope.test.ts. El workflow independiente install-smoke reutiliza el mismo script de alcance mediante su propio trabajo preflight. Calcula run_install_smoke a partir de la señal más limitada changed-smoke, por lo que el smoke de Docker/install solo se ejecuta para cambios relevantes de instalación, empaquetado y contenedores. En los pushes, la matriz checks agrega la ruta compat-node22, solo para push. En pull requests, esa ruta se omite y la matriz sigue centrada en las rutas normales de pruebas/canales.

Runners

RunnerJobs
blacksmith-16vcpu-ubuntu-2404preflight, security-fast, build-artifacts, comprobaciones de Linux, comprobaciones de documentación, Skills de Python, android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-node, macos-swift

Equivalentes locales

pnpm check          # tipos + lint + formato
pnpm build:strict-smoke
pnpm test:gateway:watch-regression
pnpm test           # pruebas de vitest
pnpm test:channels
pnpm check:docs     # formato de documentación + lint + enlaces rotos
pnpm build          # compilar dist cuando importan las rutas de artefactos/compilación smoke de CI