Cómo dominar nuestro CI Pipeline
Seguro que te ha pasado: envías un pull request y esperas una eternidad para que el CI termine, solo para descubrir que falló por un error de formato básico. Es frustrante perder tiempo en esperas innecesarias cuando podrías estar programando.
Para evitar esto, nuestro CI Pipeline utiliza un sistema de scoping inteligente. Si solo cambias la documentación o el código nativo, el sistema omite las tareas pesadas para que recibas feedback rápido en tus cambios.
Requisitos previos
Sección titulada «Requisitos previos»- Tener instalado
pnpm. - Acceso al repositorio para ejecutar los comandos locales.
Inicio rápido
Sección titulada «Inicio rápido»Para validar tus cambios antes de subirlos y ahorrar tiempo en el CI, sigue estos pasos:
- Ejecuta
pnpm checkpara validar tipos de TypeScript, lint y formato. - Corre
pnpm testpara asegurar que los tests de Vitest pasen correctamente. - Si estás trabajando en la documentación, usa
pnpm check:docs. - Verifica el contenido del paquete final con
pnpm release:check.
Job Overview
Sección titulada «Job Overview»El pipeline se ejecuta en cada push a main y en cada pull request. Aquí tienes lo que hace cada job:
| Job | Purpose | When it runs |
|---|---|---|
docs-scope | Detect docs-only changes | Always |
changed-scope | Detect which areas changed (node/macos/android) | Non-docs PRs |
check | TypeScript types, lint, format | Non-docs changes |
check-docs | Markdown lint + broken link check | Docs changed |
code-analysis | LOC threshold check (1000 lines) | PRs only |
secrets | Detect leaked secrets | Always |
build-artifacts | Build dist once, share with other jobs | Non-docs, node changes |
release-check | Validate npm pack contents | After build |
checks | Node/Bun tests + protocol check | Non-docs, node changes |
checks-windows | Windows-specific tests | Non-docs, node changes |
macos | Swift lint/build/test + TS tests | PRs with macos changes |
android | Gradle build + tests | Non-docs, android changes |
Fail-Fast Order
Sección titulada «Fail-Fast Order»Los jobs están ordenados para que las verificaciones baratas fallen antes de que se ejecuten las costosas:
- Validaciones iniciales:
docs-scope,code-analysisycheckcorren en paralelo (~1-2 min). - Construcción:
build-artifactsse ejecuta solo si los anteriores pasan. - Tests de plataforma: Se lanzan
checksychecks-windows. - Tests nativos: Se ejecutan
macosyandroid(bloqueados por el build).
Code Analysis
Sección titulada «Code Analysis»El job code-analysis ejecuta el script scripts/analyze_code_files.py en los PRs para mantener la calidad del código bajo estas reglas:
- Límite de líneas (LOC): Los archivos que superen las 1000 líneas harán que el build falle.
- Solo cambios (Delta): El sistema solo revisa los archivos que modificaste en tu PR, no todo el proyecto.
Cuando activas el flag --strict, cualquier violación bloquea todos los jobs siguientes. Esto permite detectar archivos demasiado grandes antes de gastar recursos en tests pesados. El sistema ignora directorios como node_modules, dist, vendor, .git, coverage, Swabble, skills y .pi.
Solución de problemas
Sección titulada «Solución de problemas»- Fallo por límite de líneas: Si el job
code-analysisfalla, revisa si tu archivo superó las 1000 líneas. Te recomiendo dividir el código en módulos más pequeños. - Jobs bloqueados: Si usas el flag
--stricty hay una violación de calidad, los jobs posteriores no se ejecutarán hasta que lo soluciones.
Si necesitas ayuda con un error específico, consulta al AI Setup Assistant.
Próximos pasos
Sección titulada «Próximos pasos»- Guía de tests locales.
- Estándares de código nativo.
OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.