Release and CI
Validación completa de lanzamiento
Full Release Validation es el paraguas de lanzamiento. Es el único punto de
entrada manual para la prueba previa al lanzamiento, pero la mayor parte del trabajo ocurre en flujos de trabajo secundarios, de modo que una
caja fallida pueda volver a ejecutarse sin reiniciar todo el lanzamiento.
Ejecútalo desde una referencia de flujo de trabajo confiable, normalmente main, y pasa la rama de lanzamiento,
etiqueta o SHA de confirmación completo como ref:
gh workflow run full-release-validation.yml \
--ref main \
-f ref=release/YYYY.M.D \
-f provider=openai \
-f mode=both \
-f release_profile=stable
Los flujos de trabajo secundarios usan la referencia de flujo de trabajo confiable para el arnés y el ref de entrada
para el candidato bajo prueba. Eso mantiene disponible la nueva lógica de validación
al validar una rama o etiqueta de lanzamiento más antigua.
De forma predeterminada, release_profile=stable ejecuta los carriles que bloquean el lanzamiento y omite
la prueba exhaustiva en vivo/Docker soak. Pasa run_release_soak=true para incluir los
carriles soak en una ejecución estable. release_profile=full siempre habilita los carriles soak para que
el perfil de asesoramiento amplio nunca pierda cobertura silenciosamente.
Package Acceptance normalmente crea el tarball candidato a partir del ref
resuelto, incluidas las ejecuciones con SHA completo despachadas con pnpm ci:full-release. Después de
publicar, pasa [email protected] (u
openclaw@beta/openclaw@latest) para ejecutar en su lugar la misma matriz de paquete/actualización contra
el paquete npm entregado.
Etapas de nivel superior
| Etapa | Detalles |
|---|---|
| Resolución de objetivo | Trabajo: Resolve target ref |
| Flujo de trabajo secundario: ninguno | |
| Prueba: resuelve la rama de lanzamiento, la etiqueta o el SHA de confirmación completo, y registra las entradas seleccionadas. | |
| Reejecución: vuelve a ejecutar el paraguas si esto falla. | |
| Vitest y CI normal | Trabajo: Run normal full CI |
Flujo de trabajo secundario: CI |
|
Prueba: grafo de CI completo manual contra el ref objetivo, incluidos carriles de Node en Linux, fragmentos de Plugin incluidos, contratos de canal, compatibilidad con Node 22, check, check-additional, smoke de compilación, comprobaciones de documentación, Skills de Python, Windows, macOS, i18n de Control UI y Android mediante el paraguas. |
|
Reejecución: rerun_group=ci. |
|
| Prelanzamiento de Plugin | Trabajo: Run plugin prerelease validation |
Flujo de trabajo secundario: Plugin Prerelease |
|
| Prueba: comprobaciones estáticas de Plugin solo de lanzamiento, cobertura agentic de Plugin, fragmentos de lote completos de extensión y carriles Docker de prelanzamiento de Plugin. | |
Reejecución: rerun_group=plugin-prerelease. |
|
| Comprobaciones de lanzamiento | Trabajo: Run release/live/Docker/QA validation |
Flujo de trabajo secundario: OpenClaw Release Checks |
|
Prueba: smoke de instalación, comprobaciones de paquete entre sistemas operativos, Package Acceptance, paridad de QA Lab, Matrix en vivo y Telegram en vivo. Con run_release_soak=true o release_profile=full, también ejecuta suites exhaustivas en vivo/E2E y fragmentos de ruta de lanzamiento Docker. |
|
Reejecución: rerun_group=release-checks o un identificador de release-checks más estrecho. |
|
| Artefacto de paquete | Trabajo: Prepare release package artifact |
| Flujo de trabajo secundario: ninguno | |
Prueba: crea el tarball principal release-package-under-test lo bastante pronto para las comprobaciones orientadas a paquetes que no necesitan esperar a OpenClaw Release Checks. |
|
Reejecución: vuelve a ejecutar el paraguas o proporciona npm_telegram_package_spec para rerun_group=npm-telegram. |
|
| Telegram de paquete | Trabajo: Run package Telegram E2E |
Flujo de trabajo secundario: NPM Telegram Beta E2E |
|
Prueba: prueba de paquete Telegram respaldada por artefacto principal para rerun_group=all con release_profile=full, o prueba de Telegram con paquete publicado cuando npm_telegram_package_spec está establecido. |
|
Reejecución: rerun_group=npm-telegram con npm_telegram_package_spec. |
|
| Verificador paraguas | Trabajo: Verify full validation |
| Flujo de trabajo secundario: ninguno | |
| Prueba: vuelve a comprobar las conclusiones registradas de las ejecuciones secundarias y anexa tablas de los trabajos más lentos de los flujos de trabajo secundarios. | |
| Reejecución: vuelve a ejecutar solo este trabajo después de volver a ejecutar un secundario fallido hasta que quede en verde. |
Para ref=main y rerun_group=all, un paraguas más nuevo reemplaza a uno más antiguo.
Cuando se cancela el padre, su monitor cancela cualquier flujo de trabajo secundario que ya haya
despachado. Las ejecuciones de validación de ramas y etiquetas de lanzamiento no se cancelan entre sí de forma
predeterminada.
Etapas de comprobaciones de lanzamiento
OpenClaw Release Checks es el flujo de trabajo secundario más grande. Resuelve el objetivo
una vez y prepara un artefacto compartido release-package-under-test cuando las etapas orientadas a paquetes
o Docker lo necesitan.
| Etapa | Detalles |
|---|---|
| Objetivo de release | Job: Resolve target ref |
| Flujo de trabajo de respaldo: ninguno | |
| Pruebas: ref seleccionada, SHA esperado opcional, perfil, grupo de reejecución y filtro de suite live enfocada. | |
Reejecución: rerun_group=release-checks. |
|
| Artefacto de paquete | Job: Prepare release package artifact |
| Flujo de trabajo de respaldo: ninguno | |
Pruebas: empaqueta o resuelve un tarball candidato y sube release-package-under-test para las comprobaciones posteriores orientadas a paquetes. |
|
| Reejecución: el grupo de paquete, cross-OS o live/E2E afectado. | |
| Smoke de instalación | Job: Run install smoke |
Flujo de trabajo de respaldo: Install Smoke |
|
| Pruebas: ruta completa de instalación con reutilización de imagen smoke del Dockerfile raíz, instalación del paquete QR, smokes de Docker raíz y Gateway, pruebas Docker del instalador, smoke de proveedor de imágenes con instalación global de Bun y E2E rápido de instalación/desinstalación de plugins incluidos. | |
Reejecución: rerun_group=install-smoke. |
|
| Cross-OS | Job: cross_os_release_checks |
Flujo de trabajo de respaldo: OpenClaw Cross-OS Release Checks (Reusable) |
|
| Pruebas: carriles fresh y de actualización en Linux, Windows y macOS para el proveedor y el modo seleccionados, usando el tarball candidato más un paquete base. | |
Reejecución: rerun_group=cross-os. |
|
| Repo y E2E live | Job: Run repo/live E2E validation |
Flujo de trabajo de respaldo: OpenClaw Live And E2E Checks (Reusable) |
|
Pruebas: E2E del repositorio, caché live, streaming de websocket de OpenAI, proveedor live nativo y shards de plugins, y arneses live respaldados por Docker para modelo/backend/Gateway seleccionados por release_profile. |
|
Ejecuciones: run_release_soak=true, release_profile=full o rerun_group=live-e2e enfocado. |
|
Reejecución: rerun_group=live-e2e, opcionalmente con live_suite_filter. |
|
| Ruta de release Docker | Job: Run Docker release-path validation |
Flujo de trabajo de respaldo: OpenClaw Live And E2E Checks (Reusable) |
|
| Pruebas: chunks Docker de ruta de release contra el artefacto de paquete compartido. | |
Ejecuciones: run_release_soak=true, release_profile=full o rerun_group=live-e2e enfocado. |
|
Reejecución: rerun_group=live-e2e. |
|
| Aceptación de paquete | Job: Run package acceptance |
Flujo de trabajo de respaldo: Package Acceptance |
|
Pruebas: fixtures de paquete de plugin offline, actualización de plugin, aceptación de paquete Telegram con OpenAI simulado y comprobaciones de supervivencia de actualización publicada contra el mismo tarball. Las comprobaciones de release bloqueantes usan la versión base publicada más reciente predeterminada; las comprobaciones soak se amplían a cada release estable de npm en o después de 2026.4.23 más fixtures de incidencias reportadas. |
|
Reejecución: rerun_group=package. |
|
| Paridad de QA | Job: Run QA Lab parity lane y Run QA Lab parity report |
| Flujo de trabajo de respaldo: jobs directos | |
| Pruebas: paquetes de paridad agéntica candidato y base, y luego el informe de paridad. | |
Reejecución: rerun_group=qa-parity o rerun_group=qa. |
|
| Matrix live de QA | Job: Run QA Lab live Matrix lane |
| Flujo de trabajo de respaldo: job directo | |
Pruebas: perfil de QA Matrix live rápido en el entorno qa-live-shared. |
|
Reejecución: rerun_group=qa-live o rerun_group=qa. |
|
| Telegram live de QA | Job: Run QA Lab live Telegram lane |
| Flujo de trabajo de respaldo: job directo | |
| Pruebas: QA live de Telegram con alquileres de credenciales de Convex CI. | |
Reejecución: rerun_group=qa-live o rerun_group=qa. |
|
| Verificador de release | Job: Verify release checks |
| Flujo de trabajo de respaldo: ninguno | |
| Pruebas: jobs de comprobación de release requeridos para el grupo de reejecución seleccionado. | |
| Reejecución: reejecutar después de que pasen los jobs secundarios enfocados. |
Chunks de ruta de release Docker
La etapa de ruta de release Docker ejecuta estos chunks cuando live_suite_filter está
vacío:
| Chunk | Cobertura |
|---|---|
core |
Carriles smoke de ruta de release Docker del núcleo. |
package-update-openai |
Comportamiento de instalación y actualización del paquete OpenAI. |
package-update-anthropic |
Comportamiento de instalación y actualización del paquete Anthropic. |
package-update-core |
Comportamiento de paquete y actualización neutral respecto al proveedor. |
plugins-runtime-plugins |
Carriles de runtime de Plugin que ejercitan el comportamiento de plugins. |
plugins-runtime-services |
Carriles de runtime de Plugin respaldados por servicios; incluye OpenWebUI cuando se solicita. |
plugins-runtime-install-a hasta plugins-runtime-install-h |
Lotes de instalación/runtime de plugins divididos para validación paralela de release. |
Usa docker_lanes=<lane[,lane]> dirigido en el flujo de trabajo live/E2E reutilizable cuando
solo falló un carril Docker. Los artefactos de release incluyen comandos de reejecución
por carril con entradas de artefacto de paquete y reutilización de imágenes cuando están disponibles.
Perfiles de release
release_profile controla principalmente la amplitud live/proveedor dentro de las comprobaciones de release.
No elimina CI completa normal, Plugin Prerelease, smoke de instalación, aceptación de
paquete ni QA Lab. Para stable, E2E exhaustivo de repo/live y los chunks de
ruta de release Docker son cobertura soak y se ejecutan cuando run_release_soak=true.
full fuerza la activación de la cobertura soak y también hace que la ejecución paraguas ejecute E2E de paquete Telegram
contra el artefacto de paquete de release padre cuando rerun_group=all, de modo que un candidato completo
previo a la publicación no omita silenciosamente ese carril de paquete Telegram.
| Perfil | Uso previsto | Cobertura live/proveedor incluida |
|---|---|---|
minimum |
Smoke crítico de release más rápido. | Ruta live de OpenAI/núcleo, modelos live Docker para OpenAI, núcleo de Gateway nativo, perfil de Gateway OpenAI nativo, plugin OpenAI nativo y Gateway OpenAI live Docker. |
stable |
Perfil predeterminado de aprobación de release. | minimum más smoke de Anthropic, Google, MiniMax, backend, arnés de pruebas live nativo, backend CLI live Docker, enlace ACP Docker, arnés Codex Docker y un shard smoke de OpenCode Go. |
full |
Barrido amplio de asesoría. | stable más proveedores de asesoría, shards live de plugins y shards live de medios. |
Adiciones solo de full
Estas suites se omiten en stable y se incluyen en full:
| Área | Cobertura solo de full |
|---|---|
| Modelos live Docker | OpenCode Go, OpenRouter, xAI, Z.ai y Fireworks. |
| Gateway live Docker | Proveedores de asesoría divididos en shards DeepSeek/Fireworks, OpenCode Go/OpenRouter y xAI/Z.ai. |
| Perfiles de proveedor de Gateway nativo | Shards completos de Anthropic Opus y Sonnet/Haiku, Fireworks, DeepSeek, shards completos de modelo OpenCode Go, OpenRouter, xAI y Z.ai. |
| Shards live de plugins nativos | Plugins A-K, L-N, O-Z otros, Moonshot y xAI. |
| Shards live de medios nativos | Audio, música de Google, música de MiniMax y grupos de video A-D. |
stable incluye native-live-src-gateway-profiles-anthropic-smoke y
native-live-src-gateway-profiles-opencode-go-smoke; full usa en su lugar los shards
más amplios de modelo Anthropic y OpenCode Go. Las reejecuciones enfocadas aún pueden usar los
identificadores agregados native-live-src-gateway-profiles-anthropic o
native-live-src-gateway-profiles-opencode-go.
Reejecuciones enfocadas
Usa rerun_group para evitar repetir cajas de release no relacionadas:
| Identificador | Alcance |
|---|---|
all |
Todas las etapas de Validación completa de lanzamiento. |
ci |
Solo el subflujo de CI completa manual. |
plugin-prerelease |
Solo el subflujo de prelanzamiento de Plugin. |
release-checks |
Todas las etapas de Comprobaciones de lanzamiento de OpenClaw. |
install-smoke |
Install Smoke mediante comprobaciones de lanzamiento. |
cross-os |
Comprobaciones de lanzamiento entre sistemas operativos. |
live-e2e |
Validación de E2E del repositorio/en vivo y de la ruta de lanzamiento de Docker. |
package |
Aceptación de paquetes. |
qa |
Paridad de QA más carriles en vivo de QA. |
qa-parity |
Solo carriles de paridad de QA e informe. |
qa-live |
Solo Matrix y Telegram en vivo de QA. |
npm-telegram |
E2E de Telegram con paquete publicado; requiere npm_telegram_package_spec. |
Usa live_suite_filter con rerun_group=live-e2e cuando falle una sola suite en vivo.
Los identificadores de filtro válidos se definen en el flujo de trabajo reutilizable en vivo/E2E, incluidos
docker-live-models, live-gateway-docker,
live-gateway-anthropic-docker, live-gateway-google-docker,
live-gateway-minimax-docker, live-gateway-advisory-docker,
live-cli-backend-docker, live-acp-bind-docker y
live-codex-harness-docker.
El identificador live-gateway-advisory-docker es un identificador de repetición agregado para sus
tres fragmentos de proveedor, por lo que aún se distribuye a todos los trabajos de Gateway de asesoría de Docker.
Usa cross_os_suite_filter con rerun_group=cross-os cuando falle un solo carril
entre sistemas operativos. El filtro acepta un id. de SO, un id. de suite o un par SO/suite, por
ejemplo windows/packaged-upgrade, windows o packaged-fresh. Los resúmenes entre sistemas operativos
incluyen tiempos por fase para los carriles de actualización empaquetada, y los comandos de larga duración
imprimen líneas de Heartbeat para que una actualización de Windows bloqueada sea visible antes de que se agote
el tiempo de espera del trabajo.
Los carriles de comprobación de lanzamiento de QA son consultivos. Un fallo solo de QA se informa como advertencia
y no bloquea el verificador de comprobaciones de lanzamiento; vuelve a ejecutar rerun_group=qa,
qa-parity o qa-live cuando necesites evidencia nueva de QA.
Evidencia que conservar
Conserva el resumen de Full Release Validation como índice de nivel de lanzamiento. Enlaza
ids. de ejecuciones secundarias e incluye tablas de los trabajos más lentos. Para fallos, inspecciona primero el flujo de trabajo
secundario y luego vuelve a ejecutar el identificador coincidente más pequeño anterior.
Artefactos útiles:
release-package-under-testdel flujo principal de Validación completa de lanzamiento yOpenClaw Release Checks- Artefactos de ruta de lanzamiento de Docker en
.artifacts/docker-tests/ package-under-testde Aceptación de paquetes y artefactos de aceptación de Docker- Artefactos de comprobación de lanzamiento entre sistemas operativos para cada SO y suite
- Artefactos de paridad de QA, Matrix y Telegram
Archivos de flujo de trabajo
.github/workflows/full-release-validation.yml.github/workflows/openclaw-release-checks.yml.github/workflows/openclaw-live-and-e2e-checks-reusable.yml.github/workflows/plugin-prerelease.yml.github/workflows/install-smoke.yml.github/workflows/openclaw-cross-os-release-checks-reusable.yml.github/workflows/package-acceptance.yml