完整发布验证
Full Release Validation 是发布的总入口。它是发布前验证的唯一手动入口点,但大部分工作在子工作流中进行,因此可以在不重启整个发布的情况下重新运行失败的框。
从受信任的工作流引用运行它,通常是 main,并将发布分支、标记或完整提交 SHA 作为 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子工作流使用受信任的工作流引用作为框架,并使用输入的 ref 作为被测候选对象。这确保在验证旧发布分支或标记时可以使用新的验证逻辑。
默认情况下,release_profile=stable 运行发布阻塞通道并跳过详尽的实时/Docker soak。在稳定运行中传递 run_release_soak=true 以包含 soak 通道。release_profile=full 始终启用 soak 通道,因此广泛的顾问配置文件不会静默地降低覆盖率。
Package Acceptance 通常根据已解析的 ref 构建候选 tarball,包括使用 pnpm ci:full-release 分发的完整 SHA 运行。在 beta 发布后,传递 [email protected] 以在发布检查、Package Acceptance、跨操作系统、发布路径 npm 和包 Docker 中重复使用已发布的 Telegram 包。仅当 Package Acceptance 需要故意验证不同的包时,才使用 package_acceptance_package_spec。
| 阶段 | 详情 |
|---|---|
| 目标解析 | 作业: Resolve target ref子工作流: 无 证明: 解析发布分支、标签或完整提交 SHA,并记录所选的输入。 重跑: 如果此步骤失败,请重跑总控工作流。 |
| Vitest 和正常 CI | Job: Run normal full CIChild workflow: CILinuxProves: 针对目标 ref 的手动完整 CI 图,包括 Linux Node 通道、打包的插件分片、插件和渠道合约分片、Node 22 兼容性、 check-*、check-additional-*、构建产物冒烟测试、文档检查、Python 技能、Windows、macOS、Control UI i18n 以及通过总伞覆盖的 Android。Rerun: 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证明内容: 安装冒烟测试、跨操作系统包检查、包验收、QA Lab 对等性、实时 Matrix 和实时 Telegram。使用 run_release_soak=true 或 release_profile=full 时,还会运行详尽的实时/E2E 套件和 Docker 发布路径块。重新运行: rerun_group=release-checks 或更窄的发布检查句柄。 |
| 包构建产物 | 作业: Prepare release package artifact子工作流: 无 证明: 足够早地创建父级 release-package-under-test tarball,以便不需要等待 OpenClaw Release Checks 的面向包的检查使用。重新运行: 重新运行总控工作流,或为已发布包的重新运行提供 release_package_spec。 |
| 包 Telegram | 作业: Run package Telegram E2E子工作流: NPM Telegram Beta E2E证明: 为 rerun_group=all 使用 release_profile=full 提供父工件支持的 Telegram 包证明,或在设置了 release_package_spec 或 npm_telegram_package_spec 时提供已发布包 Telegram 证明。重新运行: 使用 release_package_spec 或 npm_telegram_package_spec 运行 rerun_group=npm-telegram。 |
| 总验证器 | Job: Verify full validationChild workflow: 无 Proves: 重新检查记录的子运行结论,并附加来自子工作流的最慢作业表。 Rerun: 在将失败的子项重跑为绿色后,仅重跑此作业。 |
对于 ref=main 和 rerun_group=all,较新的顶层工作流会取代较旧的。当父工作流被取消时,其监视器会取消它已经分发的任何子工作流。默认情况下,发布分支和标签验证运行不会相互取消。
发布检查阶段
Section titled “发布检查阶段”OpenClaw Release Checks 是最大的子工作流。它解析一次目标,并在包或 Docker 相关的阶段需要时准备共享的 release-package-under-test 构件。
| 阶段 | 详情 |
|---|---|
| 发布目标 | Job(作业): Resolve target refBacking workflow(支撑工作流): 无 Tests(测试): 所选 ref、可选的预期 SHA、配置文件、重跑组和特定的实时套件过滤器。 Rerun(重跑): rerun_group=release-checks。 |
| 软件包构建产物 | 作业: Prepare release package artifact后备工作流: 无 测试: 打包或解析一个候选 tarball 并上传 release-package-under-test 以供下游面向包的检查使用。重新运行: 受影响的包、跨操作系统或 live/E2E 组。 |
| 安装冒烟测试 | Job: Run install smokeBacking workflow: Install SmokeTests: 完整安装路径,包含根 Dockerfile smoke 镜像复用、QR 包安装、根和网关 Docker smoke、安装程序 Docker 测试、Bun 全局安装 image-提供商 smoke,以及快速捆绑插件安装/卸载 E2E。 Rerun: rerun_group=install-smoke。 |
| 跨操作系统 | Job: cross_os_release_checksBacking workflow: OpenClaw Cross-OS Release Checks (Reusable)Tests: 在 Linux、Windows 和 macOS 上针对所选提供商和模式进行全新和升级通道测试,使用候选 tarball 和基线包。 Rerun: rerun_group=cross-os。 |
| 仓库和实时 E2E | 作业: Run repo/live E2E validation支持工作流: OpenClaw Live And E2E Checks (Reusable)测试: 仓库 E2E、实时缓存、OpenAI WebSocket 流式传输、原生实时提供商和插件分片,以及由 release_profile 选择的 Docker 支持的实时模型/后端/网关适配器。运行: 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)测试: 针对共享 package 构件的 release-path Docker 块。 运行: run_release_soak=true、release_profile=full 或聚焦的 rerun_group=live-e2e。重新运行: rerun_group=live-e2e。 |
| 包验收 | Job: Run package acceptanceBacking workflow: Package AcceptanceOpenAITelegramnpmTests: 离线插件包固件、插件更新、mock-OpenAI Telegram 包验收,以及针对同一 tarball 的已发布升级存活检查。阻断发布检查使用默认最新发布的基线;浸泡检查扩展到 2026.4.23 及之后的每个稳定 npm 版本以及报告问题的固件。Rerun: rerun_group=package。 |
| QA parity | Job: Run QA Lab parity lane 和 Run QA Lab parity reportBacking workflow: 直接作业 Tests: 候选版本和基线版本的代理对齐包,然后是对齐报告。 Rerun: rerun_group=qa-parity 或 rerun_group=qa。 |
| QA live Matrix | 作业: Run QA Lab live Matrix lane后备工作流: 直接作业 测试: qa-live-shared 环境中的快速实时 Matrix QA 配置文件。重新运行: rerun_group=qa-live 或 rerun_group=qa。 |
| QA live Telegram | Job: Run QA Lab live Telegram laneTelegramBacking workflow: 直接作业 Tests: 使用 Convex CI 凭据租约进行实时 Telegram QA。 Rerun: rerun_group=qa-live 或 rerun_group=qa。 |
| Release verifier | 作业: Verify release checks支持工作流: 无 测试: 所选重新运行组所需的 release-check 作业。 重新运行: 在聚焦的子作业通过后重新运行。 |
Docker release-path chunks
Section titled “Docker release-path chunks”当 live_suite_filter 为空时,Docker release-path 阶段运行这些块:
| Chunk | Coverage |
|---|---|
core | Core Docker release-path smoke lanes。 |
package-update-openai | OpenAI 包安装/更新行为、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 通道失败时,请在可重用的实时/E2E 工作流上使用针对性的 docker_lanes=<lane[,lane]>Docker。发布产物包含带有包产物和镜像复用输入(如果可用)的各通道重新运行命令。
发布配置文件
Section titled “发布配置文件”release_profile 主要控制发布检查中的实时/提供商范围。它不会移除正常的完整 CI、插件预发布、安装冒烟、包验收或 QA Lab。对于 stableDocker,详尽的仓库/实时 E2E 和 Docker 发布路径块属于 soak 覆盖范围,并在 run_release_soak=true 时运行。fullTelegram 强制开启 soak 覆盖范围,并使得总管流程在 rerun_group=allTelegram 时针对父发布包产物运行包 Telegram E2E,因此完整的预发布候选版本不会静默跳过该 Telegram 包通道。
| 配置文件 | 预期用途 | 包含的实时/提供商覆盖范围 |
|---|---|---|
minimum | 最快的发布关键冒烟测试。 | OpenAI/核心实时路径、OpenAI 的 Docker 实时模型、原生网关核心、原生 OpenAI 网关配置文件、原生 OpenAI 插件和 Docker 实时网关 OpenAI。 |
stable | 默认发布批准配置文件。 | minimum 加上 Anthropic 冒烟测试、Google、MiniMax、后端、原生实时测试套件、Docker 实时 CLI 后端、Docker ACP 绑定、Docker Codex 套件以及一个 OpenCode Go 冒烟测试分片。 |
full | 广泛的顾问扫描。 | stable 加上公告提供者、插件实时分片和媒体实时分片。 |
仅限完整的补充
Section titled “仅限完整的补充”这些测试套件被 stable 跳过,并由 full 包含:
| 区域 | 仅限完整的覆盖 |
|---|---|
| Docker 实时模型 | OpenCode Go、OpenRouter、xAI、Z.ai 和 Fireworks。 |
| Docker 实时网关 | 顾问提供商拆分为 DeepSeek/Fireworks、OpenCode Go/OpenRouter 和 xAI/Z.ai 分片。 |
| 原生网关提供商配置 | 完整的 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;fullAnthropic 则使用更广泛的
Anthropic 和 OpenCode Go 模型分片。专注的重试仍可使用
聚合的 native-live-src-gateway-profiles-anthropic 或
native-live-src-gateway-profiles-opencode-go 句柄。
聚焦式重运行
Section titled “聚焦式重运行”使用 rerun_group 以避免重复不相关的发布框:
| 句柄 | 范围 |
|---|---|
all | 所有完整发布验证阶段。 |
ci | 仅限手动完整 CI 子项。 |
plugin-prerelease | 仅限插件预发布子项。 |
release-checks | 所有 OpenClaw 发布检查阶段。 |
install-smoke | 通过发布检查进行安装冒烟测试。 |
cross-os | 跨操作系统发布检查。 |
live-e2e | 仓库/实时 E2E 和 Docker 发布路径验证。 |
package | 包验收。 |
qa | QA 奇偶校验以及 QA 实时通道。 |
qa-parity | QA 奇偶校验通道,仅报告。 |
qa-live | 仅 QA 实时 Matrix 和 Telegram。 |
npm-telegram | 已发布包的 Telegram E2E;需要 release_package_spec 或 npm_telegram_package_spec。 |
当一个 live 测试套件失败时,请使用 live_suite_filter 配合 rerun_group=live-e2e。
有效的过滤器 id 在可复用的 live/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 网关作业。
当某个跨 OS 通道失败时,请将 cross_os_suite_filter 与 rerun_group=cross-os 一起使用。该过滤器接受 OS ID、套件 ID 或 OS/套件对,例如 windows/packaged-upgrade、windows 或 packaged-fresh。跨 OS 摘要包含打包升级通道的各阶段计时信息,长时间运行的命令会打印心跳行,以便在作业超时前发现卡住的 Windows 更新。
QA release-check 通道是建议性的,但标准运行时工具覆盖关卡除外。标准层级中所需的 OpenClaw 动态工具漂移会阻塞 release-check 验证器;其他仅限 QA 的失败将作为警告报告。当您需要新的 QA 证据时,请重新运行 rerun_group=qa、qa-parity 或 qa-live。
要保留的证据
Section titled “要保留的证据”将 Full Release Validation 摘要作为发布级索引。它链接了子运行 ID 并包含最慢作业表。对于失败,请先检查子工作流,然后重新运行上方匹配的最小处理程序。
有用构件:
- 来自完整发布验证父级的
release-package-under-test和OpenClaw Release Checks - Docker 发布路径构件位于
.artifacts/docker-tests/下 - 包验收
package-under-test和 Docker 验收产物 - 每个操作系统和套件的跨操作系统发布检查构件
- 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