Saltar al contenido principal

Canalización 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

TrabajoPropósitoCuándo se ejecuta
preflightDetectar cambios solo en docs, 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 con zizmor, auditoría de dependencias de producciónSiempre en pushes y PR no borrador
build-artifactsCompilar dist/ y la UI de Control una vez, y subir artefactos reutilizables para trabajos posterioresCambios relevantes para Node
checks-fast-coreCarriles rápidos de corrección en Linux, como verificaciones de bundled/plugin-contract/protocolCambios relevantes para Node
checks-node-extensionsShards completos de pruebas de bundled-plugin en toda la suite de extensionesCambios relevantes para Node
checks-node-core-testShards de pruebas principales de Node, excluyendo carriles de canal, bundled, contrato y extensiónCambios relevantes para Node
extension-fastPruebas enfocadas solo en los plugins empaquetados modificadosCuando se detectan cambios en extensiones
checkPuerta local principal en CI: pnpm check más pnpm build:strict-smokeCambios relevantes para Node
check-additionalGuardas de arquitectura, límites e import-cycle, 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 iniciarCambios relevantes para Node
checksCarriles restantes de Node en Linux: pruebas de canales y compatibilidad con Node 22 solo en pushCambios relevantes para Node
check-docsFormato de docs, lint y comprobaciones de enlaces rotosCuando cambian las docs
skills-pythonRuff + pytest para Skills con backend en PythonCambios relevantes para Skills de Python
checks-windowsCarriles de prueba específicos de WindowsCambios relevantes para Windows
macos-nodeCarril de pruebas de 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 fail-fast

Los trabajos se ordenan para que las verificaciones baratas fallen antes de que se ejecuten las costosas:
  1. preflight decide qué carriles existen en primer lugar. La lógica de 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ápido sin esperar a los trabajos más pesados de artefactos y matrices de plataforma.
  3. build-artifacts se superpone con los carriles rápidos de Linux para que los consumidores posteriores puedan empezar en cuanto la compilación compartida esté lista.
  4. Después se distribuyen los carriles más pesados de plataforma y tiempo de ejecución: checks-fast-core, checks-node-extensions, checks-node-core-test, 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 acotada de cambios relevantes para smoke, por lo que el smoke de Docker/instalación solo se ejecuta para cambios relevantes para instalación, empaquetado y contenedores. En los pushes, la matriz checks agrega el carril compat-node22, que solo se ejecuta en push. En los pull requests, ese carril se omite y la matriz se mantiene enfocada en los carriles normales de pruebas/canales.

Runners

RunnerTrabajos
blacksmith-16vcpu-ubuntu-2404preflight, security-fast, build-artifacts, verificaciones de Linux, comprobaciones de docs, 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 check:import-cycles
pnpm test:gateway:watch-regression
pnpm test           # pruebas de vitest
pnpm test:channels
pnpm check:docs     # formato de docs + lint + enlaces rotos
pnpm build          # compila dist cuando importan los carriles de artefactos/ build-smoke de CI