Full Release Validation 是发布验证的总入口:用于发布前证明的单一手动入口点。大多数工作发生在子工作流中,因此某个执行环境失败后可以重新运行,而无需重启整个发布流程。
从受信任的工作流引用运行它,通常是 main,并将发布分支、标签或完整提交 SHA 作为 ref 传入:
provider 也接受 anthropic 或 minimax,用于跨操作系统新手引导和端到端智能体轮次。子工作流使用受信任的工作流引用作为测试框架,并使用输入 ref 作为待测候选版本,因此在验证较旧的发布分支或标签时,新的验证逻辑仍可用。
release_profile=stable 和 release_profile=full 始终运行完整的实时/Docker soak。传入 run_release_soak=true 可在 beta 配置文件中包含相同的 soak 通道。稳定版发布会拒绝缺少此 soak 和阻塞性产品性能证据的验证清单。
Package Acceptance 通常会从解析后的 ref 构建候选 tarball,包括通过 pnpm ci:full-release 分派的完整 SHA 运行。beta 发布后,传入 release_package_spec=openclaw@YYYY.M.PATCH-beta.N 可在发布检查、Package Acceptance、跨操作系统、发布路径 Docker 和 package Telegram 中复用已发布的 npm 包。仅当 Package Acceptance 需要有意证明不同包时,才使用 package_acceptance_package_spec。Codex 插件实时包通道遵循相同状态:已发布的 release_package_spec 值会派生 codex_plugin_spec=npm:@openclaw/codex@<version>;SHA/产物运行会从所选 ref 打包 extensions/codex;操作员也可以直接为 npm:、npm-pack: 或 git: 插件来源设置 codex_plugin_spec。该通道授予此插件所需的显式 Codex CLI 安装审批,然后运行 Codex CLI 预检和同一会话中的 OpenAI 智能体轮次。
顶层阶段
对于rerun_group=all,Verify Docker runtime image assets 作业会阻塞所有其他阶段:它会先使用 OPENCLAW_EXTENSIONS=diagnostics-otel,codex 构建 runtime-assets Docker 目标,然后才分派其他任何内容。更窄的 rerun_group 会跳过此预检。
| 阶段 | 详情 |
|---|---|
| 目标解析 | 作业: Resolve target ref子工作流: 无 证明内容: 解析发布分支、标签或完整提交 SHA,并记录所选输入。 重新运行: 如果此项失败,重新运行总工作流。 |
| Docker 资产预检 | 作业: Verify Docker runtime image assets子工作流: 无 证明内容: 在分派任何其他阶段之前,证明 runtime-assets Docker 构建目标仍然成功。仅在 rerun_group=all 时运行。重新运行: 使用 rerun_group=all 重新运行总工作流。 |
| Vitest 和常规 CI | 作业: Run normal full CI子工作流: CI证明内容: 针对目标 ref 的手动完整 CI 图,包括 Linux Node 通道、内置插件分片、插件和渠道契约分片、Node 22 兼容性、 check-*、check-additional-*、构建产物冒烟检查、文档检查、Python Skills、Windows、macOS、Control UI i18n,以及通过总工作流运行的 Android。重新运行: rerun_group=ci。 |
| 插件预发布 | 作业: Run plugin prerelease validation子工作流: Plugin Prerelease证明内容: 仅发布时运行的插件静态检查、智能体式插件覆盖、完整插件批次分片、插件预发布 Docker 通道,以及用于兼容性分流的非阻塞 plugin-inspector-advisory 产物。重新运行: rerun_group=plugin-prerelease。 |
| 发布检查 | 作业: Run release/live/Docker/QA validation子工作流: OpenClaw Release Checks证明内容: 安装冒烟检查、跨操作系统包检查、Package Acceptance、QA Lab parity、实时 Matrix 和实时 Telegram。稳定版和完整配置文件还会运行完整的实时/E2E 套件以及 Docker 发布路径分块;beta 可通过 run_release_soak=true 选择加入。重新运行: rerun_group=release-checks 或更窄的 release-checks 句柄。 |
| Package Telegram | 作业: Run package Telegram E2E子工作流: NPM Telegram Beta E2E证明内容: 在设置了 release_package_spec 或 npm_telegram_package_spec 时,运行聚焦于已发布包的 Telegram E2E。完整候选验证改用规范的 Package Acceptance Telegram E2E。重新运行: 使用 release_package_spec 或 npm_telegram_package_spec 的 rerun_group=npm-telegram。 |
| 产品性能 | 作业: Run product performance evidence子工作流: OpenClaw Performance证明内容: 针对目标 SHA 的发布配置文件性能运行( profile=release、repeat=3、fail_on_regression=true)。仅对 rerun_group=all 或 rerun_group=performance 是必需(阻塞)的;更窄的重新运行组不需要。重新运行: rerun_group=performance。 |
| 总验证器 | 作业: Verify full validation子工作流: 无 证明内容: 重新检查记录的子运行结论,并追加来自子工作流的最慢作业表。 重新运行: 在将失败的子工作流重新运行至绿色后,只重新运行此作业。 |
ref=main 和 rerun_group=all,较新的总工作流会取代较旧的总工作流。当父工作流被取消时,它的监视器会取消它已分派的任何子工作流。发布分支和标签验证运行默认不会相互取消。
发布检查阶段
OpenClaw Release Checks 是最大的子工作流。它只解析一次目标,并在包或面向 Docker 的阶段需要时准备共享的 release-package-under-test 产物。
| 阶段 | 详情 |
|---|---|
| 发布目标 | 作业: Resolve target ref支撑工作流: 无 测试: 所选 ref、可选预期 SHA、profile、重新运行组,以及聚焦的实时套件过滤器。 重新运行: rerun_group=release-checks。 |
| 包制品 | 作业: Prepare release package artifact支撑工作流: 无 测试: 打包或解析一个候选 tarball,并上传 release-package-under-test,供下游面向包的检查使用。重新运行: 受影响的包、跨 OS 或实时/E2E 组。 |
| 安装冒烟测试 | 作业: Run install smoke支撑工作流: Install Smoke测试: 完整安装路径,复用根 Dockerfile 冒烟镜像、QR 包安装、根与 Gateway 网关 Docker 冒烟测试、安装器 Docker 测试,以及 Bun 全局安装图像提供商冒烟测试。 重新运行: rerun_group=install-smoke。 |
| 跨 OS | 作业: cross_os_release_checks支撑工作流: OpenClaw Cross-OS Release Checks (Reusable)测试: 针对所选提供商和模式,在 Linux、Windows 和 macOS 上运行全新安装与升级通道,使用候选 tarball 加基线包。 重新运行: rerun_group=cross-os。 |
| 仓库和实时 E2E | 作业: Run repo/live E2E validation支撑工作流: OpenClaw Live And E2E Checks (Reusable)测试: 仓库 E2E、实时缓存、OpenAI websocket 流式传输、原生实时提供商和插件分片,以及由 release_profile 选择的 Docker 支持的实时模型/后端/Gateway 网关 harness。运行条件: run_release_soak=true、release_profile=full,或聚焦的 rerun_group=live-e2e。重新运行: rerun_group=live-e2e,可选择搭配 live_suite_filter。 |
| Docker 发布路径 | 作业: Run Docker release-path validation支撑工作流: OpenClaw Live And E2E Checks (Reusable)测试: 针对共享包制品运行发布路径 Docker 分块。 运行条件: run_release_soak=true、release_profile=full,或聚焦的 rerun_group=live-e2e。重新运行: rerun_group=live-e2e。 |
| Package Acceptance | 作业: Run package acceptance支撑工作流: Package Acceptance测试: 离线插件包夹具、插件更新、规范的模拟 OpenAI Telegram 包 E2E,以及针对同一 tarball 的已发布升级存活检查。阻塞式发布检查使用默认的最新已发布基线;长稳检查( run_release_soak=true)扩展到最近 4 个稳定 npm 版本加 3 个固定历史版本(2026.4.23、2026.5.2、2026.4.15),并针对已报告问题的升级夹具运行。重新运行: rerun_group=package。 |
| 成熟度评分卡 | 作业: Render maturity scorecard release docs支撑工作流: maturity-scorecard.yml测试: 针对目标 ref 渲染建议性的成熟度评分卡文档。仅在传入 run_maturity_scorecard=true 时运行。重新运行: rerun_group=qa,并带上 run_maturity_scorecard=true。 |
| QA 一致性 | 作业: Run QA Lab parity lane 和 Run QA Lab parity report支撑工作流: 直接作业 测试: 候选与基线的智能体式一致性包,然后生成一致性报告。 重新运行: rerun_group=qa-parity 或 rerun_group=qa。 |
| QA 运行时一致性 | 作业: Run QA Lab runtime parity lane支撑工作流: 直接作业 测试: 一个 openclaw/codex 运行时配对的智能体式一致性通道(pnpm openclaw qa suite --runtime-pair openclaw,codex),包括标准层级,并在 run_release_soak=true 时包括长稳层级。建议性说明:单个失败不会阻塞发布检查验证器。重新运行: rerun_group=qa-parity 或 rerun_group=qa。 |
| QA 运行时工具覆盖率 | 作业: Enforce QA Lab runtime tool coverage支撑工作流: 直接作业 测试: 使用 QA 运行时一致性通道的输出,在标准运行时一致性层级中检查 openclaw 与 codex 之间的动态工具漂移(pnpm openclaw qa coverage --tools)。阻塞:此作业不能通过建议性覆盖解除。重新运行: rerun_group=qa-parity 或 rerun_group=qa。 |
| QA 实时 Matrix | 作业: Run QA Lab live Matrix lane支撑工作流: 直接作业 测试: 在 qa-live-shared 环境中运行快速实时 Matrix QA profile。重新运行: rerun_group=qa-live 或 rerun_group=qa。 |
| QA 实时 Telegram | 作业: Run QA Lab live Telegram lane支撑工作流: 直接作业 测试: 使用 Convex CI 凭证租约运行实时 Telegram QA。 重新运行: rerun_group=qa-live 或 rerun_group=qa。 |
| 发布验证器 | 作业: Verify release checks支撑工作流: 无 测试: 所选重新运行组所需的发布检查作业。 重新运行: 在聚焦的子作业通过后重新运行。 |
Docker 发布路径分块
当live_suite_filter 为空时,Docker 发布路径阶段会运行这些分块:
| 分块 | 覆盖范围 |
|---|---|
core | 核心 Docker 发布路径冒烟通道。 |
package-update-openai | OpenAI 包安装/更新行为、Codex 按需安装、Codex 插件实时轮次,以及 Chat Completions 工具调用。 |
package-update-anthropic | Anthropic 包安装和更新行为。 |
package-update-core | 提供商中立的包与更新行为。 |
plugins-runtime-plugins | 运行插件行为的插件运行时通道。 |
plugins-runtime-services | 服务支持和实时插件运行时通道;按请求包含 OpenWebUI。 |
plugins-runtime-install-a 到 plugins-runtime-install-h | 为并行发布验证拆分的插件安装/运行时批次。 |
docker_lanes=<lane[,lane]>。发布制品会在可用时包含每个通道的重新运行命令,并带有包制品和镜像复用输入。
发布 profile
release_profile 主要控制发布检查中的实时/提供商覆盖广度。
它不会移除常规完整 CI、插件预发布、安装冒烟、软件包
验收或 QA Lab。stable 和 full 配置档始终运行完整的仓库/实时
E2E 以及 Docker 发布路径浸泡覆盖。beta 配置档可以通过
run_release_soak=true 选择启用。软件包验收为每个完整候选版本提供规范的软件包
Telegram E2E,因此总控流程不会重复该
实时轮询器。
| 配置档 | 预期用途 | 包含的实时/提供商覆盖范围 |
|---|---|---|
beta | 最快的发布关键冒烟测试。 | OpenAI/核心实时路径、OpenAI 的 Docker 实时模型、原生 Gateway 网关核心、原生 OpenAI Gateway 网关配置档、原生 OpenAI 插件,以及 Docker 实时 Gateway 网关 OpenAI。 |
stable | 默认发布审批配置档。 | beta 加上 Anthropic 冒烟测试、Google、MiniMax、后端、原生实时测试 harness、Docker 实时 CLI 后端、Docker ACP 绑定、Docker Codex harness、Docker 子智能体公告,以及一个 OpenCode Go 冒烟分片。 |
full | 广泛的建议性扫描。 | stable 加上建议性提供商、插件实时分片,以及媒体实时分片。 |
仅限完整配置档的新增项
这些套件会被stable 跳过,并由 full 包含:
| 区域 | 仅限完整配置档的覆盖范围 |
|---|---|
| Docker 实时模型 | OpenCode Go、OpenRouter、xAI、Z.ai 和 Fireworks。 |
| Docker 实时 Gateway 网关 | 建议性提供商拆分为 DeepSeek/Fireworks、OpenCode Go/OpenRouter 和 xAI/Z.ai 分片。 |
| 原生 Gateway 网关提供商配置档 | 完整 Anthropic Opus 和 Sonnet/Haiku 分片、Fireworks、DeepSeek、完整 OpenCode Go 模型分片、OpenRouter、xAI 和 Z.ai。 |
| 原生插件实时分片 | 插件 A-K、L-N、O-Z 其他、Moonshot 和 xAI。 |
| 原生媒体实时分片 | 音频、Google 音乐、MiniMax 音乐,以及视频组 A-D。 |
stable 包含 native-live-src-gateway-profiles-anthropic-smoke 和
native-live-src-gateway-profiles-opencode-go-smoke;full 改用覆盖更广的
Anthropic 和 OpenCode Go 模型分片。定向重跑仍可使用
聚合的 native-live-src-gateway-profiles-anthropic 或
native-live-src-gateway-profiles-opencode-go 句柄。
定向重跑
使用rerun_group 避免重复运行无关的发布任务盒:
| 句柄 | 范围 |
|---|---|
all | 所有完整发布验证阶段。 |
ci | 仅手动完整 CI 子流程。 |
plugin-prerelease | 仅插件预发布子流程。 |
release-checks | 所有 OpenClaw 发布检查阶段。 |
install-smoke | 从安装冒烟到发布检查。 |
cross-os | 跨 OS 发布检查。 |
live-e2e | 仓库/实时 E2E 和 Docker 发布路径验证。 |
package | 软件包验收。 |
qa | QA 对等性加 QA 实时通道。 |
qa-parity | 仅 QA 对等性通道和报告。 |
qa-live | QA 实时 Matrix/Telegram,以及启用时受门控的 Discord、WhatsApp 和 Slack 通道。 |
npm-telegram | 已发布软件包的 Telegram E2E;需要 release_package_spec 或 npm_telegram_package_spec。 |
performance | 仅产品性能证据。 |
live_suite_filter 与 rerun_group=live-e2e 搭配使用。
有效的过滤器 ID 在可复用实时/E2E 工作流中定义,包括
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 和
live-codex-harness-docker。
live-gateway-advisory-docker 句柄是其
三个提供商分片的聚合重跑句柄,因此它仍会扇出到所有建议性 Docker Gateway 网关作业。
当某个跨 OS 通道失败时,将 cross_os_suite_filter 与 rerun_group=cross-os 搭配使用。
该过滤器接受 OS ID、套件 ID,或 OS/套件组合,例如
windows/packaged-upgrade、windows 或 packaged-fresh。跨 OS
摘要包含打包升级通道的分阶段耗时,长时间运行的
命令会打印 Heartbeat 行,以便在作业
超时前看出更新卡住。
QA 发布检查失败会阻止常规发布验证。QA 运行时工具
覆盖检查(标准层中 openclaw 和 codex 之间的动态工具漂移)
也会阻止发布检查验证器,即使
底层 QA 运行时对等性通道是建议性的。Tideclaw alpha 运行仍可
将非软件包安全的发布检查通道视为建议性通道。当
live_suite_filter 显式请求受门控的 QA 实时通道(例如 Discord、
WhatsApp 或 Slack)时,必须启用匹配的 OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED 仓库
变量;否则输入捕获会失败,而不是静默跳过该通道。
当你需要新的 QA 证据时,重跑 rerun_group=qa、qa-parity 或 qa-live。
需要保留的证据
保留Full Release Validation 摘要作为发布级索引。它会链接
子运行 ID,并包含最慢作业表。对于失败,先检查子
工作流,然后重跑上方最小的匹配句柄。
有用的工件:
- 来自
OpenClaw Release Checks的release-package-under-test .artifacts/docker-tests/下的 Docker 发布路径工件- 软件包验收的
package-under-test和 Docker 验收工件 - 每个 OS 和套件的跨 OS 发布检查工件
- QA 对等性、运行时对等性、Matrix 和 Telegram 工件
工作流文件
.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.github/workflows/openclaw-performance.yml.github/workflows/npm-telegram-beta-e2e.yml