跳转到内容

完整发布验证

Full Release Validation 是发布的总入口。它是发布前验证的唯一手动入口点,但大部分工作在子工作流中进行,因此可以在不重启整个发布的情况下重新运行失败的框。

从受信任的工作流引用运行它,通常是 main,并将发布分支、标记或完整提交 SHA 作为 ref 传递:

Terminal window
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 和正常 CIJob: Run normal full CI
Child workflow: CILinux
Proves: 针对目标 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=truerelease_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_specnpm_telegram_package_spec 时提供已发布包 Telegram 证明。
重新运行: 使用 release_package_specnpm_telegram_package_spec 运行 rerun_group=npm-telegram
总验证器Job: Verify full validation
Child workflow:
Proves: 重新检查记录的子运行结论,并附加来自子工作流的最慢作业表。
Rerun: 在将失败的子项重跑为绿色后,仅重跑此作业。

对于 ref=mainrerun_group=all,较新的顶层工作流会取代较旧的。当父工作流被取消时,其监视器会取消它已经分发的任何子工作流。默认情况下,发布分支和标签验证运行不会相互取消。

OpenClaw Release Checks 是最大的子工作流。它解析一次目标,并在包或 Docker 相关的阶段需要时准备共享的 release-package-under-test 构件。

阶段详情
发布目标Job(作业): Resolve target ref
Backing workflow(支撑工作流):
Tests(测试): 所选 ref、可选的预期 SHA、配置文件、重跑组和特定的实时套件过滤器。
Rerun(重跑): rerun_group=release-checks
软件包构建产物作业: Prepare release package artifact
后备工作流:
测试: 打包或解析一个候选 tarball 并上传 release-package-under-test 以供下游面向包的检查使用。
重新运行: 受影响的包、跨操作系统或 live/E2E 组。
安装冒烟测试Job: Run install smoke
Backing workflow: Install Smoke
Tests: 完整安装路径,包含根 Dockerfile smoke 镜像复用、QR 包安装、根和网关 Docker smoke、安装程序 Docker 测试、Bun 全局安装 image-提供商 smoke,以及快速捆绑插件安装/卸载 E2E。
Rerun: rerun_group=install-smoke
跨操作系统Job: cross_os_release_checks
Backing 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=truerelease_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=truerelease_profile=full 或聚焦的 rerun_group=live-e2e
重新运行: rerun_group=live-e2e
包验收Job: Run package acceptance
Backing workflow: Package AcceptanceOpenAITelegramnpm
Tests: 离线插件包固件、插件更新、mock-OpenAI Telegram 包验收,以及针对同一 tarball 的已发布升级存活检查。阻断发布检查使用默认最新发布的基线;浸泡检查扩展到 2026.4.23 及之后的每个稳定 npm 版本以及报告问题的固件。
Rerun: rerun_group=package
QA parityJob: Run QA Lab parity laneRun QA Lab parity report
Backing workflow: 直接作业
Tests: 候选版本和基线版本的代理对齐包,然后是对齐报告。
Rerun: rerun_group=qa-parityrerun_group=qa
QA live Matrix作业: Run QA Lab live Matrix lane
后备工作流: 直接作业
测试: qa-live-shared 环境中的快速实时 Matrix QA 配置文件。
重新运行: rerun_group=qa-livererun_group=qa
QA live TelegramJob: Run QA Lab live Telegram laneTelegram
Backing workflow: 直接作业
Tests: 使用 Convex CI 凭据租约进行实时 Telegram QA。
Rerun: rerun_group=qa-livererun_group=qa
Release verifier作业: Verify release checks
支持工作流:
测试: 所选重新运行组所需的 release-check 作业。
重新运行: 在聚焦的子作业通过后重新运行。

live_suite_filter 为空时,Docker release-path 阶段运行这些块:

ChunkCoverage
coreCore Docker release-path smoke lanes。
package-update-openaiOpenAI 包安装/更新行为、Codex 按需安装以及 Chat Completions 工具调用。
package-update-anthropicAnthropic 包安装和更新行为。
package-update-core提供商无关的包和更新行为。
plugins-runtime-plugins演练插件行为的插件运行时通道。
plugins-runtime-services服务支持的和实时插件运行时通道;根据需要包括 OpenWebUI。
plugins-runtime-install-aplugins-runtime-install-h插件安装/运行时批次,已拆分以进行并行发布验证。

当仅有一个 Docker 通道失败时,请在可重用的实时/E2E 工作流上使用针对性的 docker_lanes=<lane[,lane]>Docker。发布产物包含带有包产物和镜像复用输入(如果可用)的各通道重新运行命令。

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 加上公告提供者、插件实时分片和媒体实时分片。

这些测试套件被 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-smokenative-live-src-gateway-profiles-opencode-go-smokefullAnthropic 则使用更广泛的 Anthropic 和 OpenCode Go 模型分片。专注的重试仍可使用 聚合的 native-live-src-gateway-profiles-anthropicnative-live-src-gateway-profiles-opencode-go 句柄。

使用 rerun_group 以避免重复不相关的发布框:

句柄范围
all所有完整发布验证阶段。
ci仅限手动完整 CI 子项。
plugin-prerelease仅限插件预发布子项。
release-checks所有 OpenClaw 发布检查阶段。
install-smoke通过发布检查进行安装冒烟测试。
cross-os跨操作系统发布检查。
live-e2e仓库/实时 E2E 和 Docker 发布路径验证。
package包验收。
qaQA 奇偶校验以及 QA 实时通道。
qa-parityQA 奇偶校验通道,仅报告。
qa-live仅 QA 实时 Matrix 和 Telegram。
npm-telegram已发布包的 Telegram E2E;需要 release_package_specnpm_telegram_package_spec

当一个 live 测试套件失败时,请使用 live_suite_filter 配合 rerun_group=live-e2e。 有效的过滤器 id 在可复用的 live/E2E 工作流中定义,包括 docker-live-modelslive-gateway-dockerlive-gateway-anthropic-dockerlive-gateway-google-dockerlive-gateway-minimax-dockerlive-gateway-advisory-dockerlive-cli-backend-dockerlive-acp-bind-dockerlive-codex-harness-docker

live-gateway-advisory-docker 句柄是其三个提供商分片的聚合重新运行句柄,因此它仍然会分发到所有咨询 Docker 网关作业。

当某个跨 OS 通道失败时,请将 cross_os_suite_filterrerun_group=cross-os 一起使用。该过滤器接受 OS ID、套件 ID 或 OS/套件对,例如 windows/packaged-upgradewindowspackaged-fresh。跨 OS 摘要包含打包升级通道的各阶段计时信息,长时间运行的命令会打印心跳行,以便在作业超时前发现卡住的 Windows 更新。

QA release-check 通道是建议性的,但标准运行时工具覆盖关卡除外。标准层级中所需的 OpenClaw 动态工具漂移会阻塞 release-check 验证器;其他仅限 QA 的失败将作为警告报告。当您需要新的 QA 证据时,请重新运行 rerun_group=qaqa-parityqa-live

Full Release Validation 摘要作为发布级索引。它链接了子运行 ID 并包含最慢作业表。对于失败,请先检查子工作流,然后重新运行上方匹配的最小处理程序。

有用构件:

  • 来自完整发布验证父级的 release-package-under-testOpenClaw 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