Skip to main content
Full Release Validation 是发布总入口。它是预发布证明的唯一手动 入口,但大部分工作发生在子工作流中,因此失败的 box 可以在不重启整个发布的情况下重跑。 从受信任的工作流引用运行它,通常是 main,并将发布分支、标签或完整提交 SHA 作为 ref 传入:
gh workflow run full-release-validation.yml \
  --ref main \
  -f ref=release/YYYY.M.PATCH \
  -f provider=openai \
  -f mode=both \
  -f release_profile=stable
子工作流对 harness 使用受信任的工作流引用,对正在测试的候选项使用输入 ref。这样即使在验证较旧的发布分支或标签时,也能使用新的验证逻辑。 默认情况下,release_profile=stable 会运行发布阻断的通道,并跳过 全面的 live/Docker soak。传入 run_release_soak=true 可在 stable 运行中包含 soak 通道。release_profile=full 总是启用 soak 通道,因此广泛的建议型配置不会默默丢失覆盖范围。 Package Acceptance 通常会从解析后的 ref 构建候选 tarball,包括通过 pnpm ci:full-release 触发的完整 SHA 运行。
在 beta 发布之后,传入 [email protected],以便在发布检查、Package Acceptance、cross-OS、 release-path Docker 和 package Telegram 之间复用已发布的 npm 包。仅当 Package Acceptance 需要有意证明不同的包时,才使用 package_acceptance_package_spec。Codex 插件 live 包通道遵循相同状态:已发布的 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 代理轮次。

顶层阶段

StageDetails
Target resolutionJob: Resolve target ref
Child workflow: none
Proves: resolves the release branch, tag, or full commit SHA and records selected inputs.
Rerun: rerun the umbrella if this fails.
Vitest and normal CIJob: Run normal full CI
Child workflow: CI
Proves: manual full CI graph against the target ref, including Linux Node lanes, bundled plugin shards, plugin and channel contract shards, Node 22 compatibility, check-*, check-additional-*, built-artifact smoke checks, docs checks, Python skills, Windows, macOS, Control UI i18n, and Android via the umbrella.
Rerun: rerun_group=ci.
Plugin prereleaseJob: Run plugin prerelease validation
Child workflow: Plugin Prerelease
Proves: release-only plugin static checks, agentic plugin coverage, full extension batch shards, plugin prerelease Docker lanes, and a non-blocking plugin-inspector-advisory artifact for compatibility triage.
Rerun: rerun_group=plugin-prerelease.
Release checksJob: Run release/live/Docker/QA validation
Child workflow: OpenClaw Release Checks
Proves: install smoke, cross-OS package checks, Package Acceptance, QA Lab parity, live Matrix, and live Telegram. With run_release_soak=true or release_profile=full, also runs exhaustive live/E2E suites and Docker release-path chunks.
Rerun: rerun_group=release-checks or a narrower release-checks handle.
Package artifactJob: Prepare release package artifact
Child workflow: none
Proves: creates the parent release-package-under-test tarball early enough for package-facing checks that do not need to wait for OpenClaw Release Checks.
Rerun: rerun the umbrella or provide release_package_spec for published-package reruns.
Package TelegramJob: Run package Telegram E2E
Child workflow: NPM Telegram Beta E2E
Proves: parent-artifact-backed Telegram package proof for rerun_group=all with release_profile=full, or published-package Telegram proof when release_package_spec or npm_telegram_package_spec is set.
Rerun: rerun_group=npm-telegram with release_package_spec or npm_telegram_package_spec.
Umbrella verifierJob: Verify full validation
Child workflow: none
Proves: re-checks recorded child run conclusions and appends slowest-job tables from child workflows.
Rerun: rerun only this job after rerunning a failed child to green.

Docker 发布路径分块

live_suite_filter 为空时,Docker release-path 阶段运行以下分块:
ChunkCoverage
coreCore Docker release-path smoke lanes.
package-update-openaiOpenAI package install/update behavior, Codex on-demand install, Codex plugin live turns, and Chat Completions tool calls.
package-update-anthropicAnthropic package install and update behavior.
package-update-coreProvider-neutral package and update behavior.
plugins-runtime-pluginsPlugin runtime lanes that exercise plugin behavior.
plugins-runtime-servicesService-backed and live plugin runtime lanes; includes OpenWebUI when requested.
plugins-runtime-install-a through plugins-runtime-install-hPlugin install/runtime batches split for parallel release validation.
当只有一个 Docker 通道失败时,请在可复用的 live/E2E 工作流中使用有针对性的 docker_lanes=<lane[,lane]>。发布制品在可用时包含每个通道的重新运行命令,以及包制品和镜像复用输入。

发布配置文件

release_profile 主要控制发布检查中的 live/provider 覆盖范围。
它不会移除正常的 full CI、Plugin Prerelease、install smoke、package acceptance 或 QA Lab。对于 stable,详尽的 repo/live E2E 和 Docker release-path 分块属于 soak 覆盖,并在 run_release_soak=true 时运行。
full 会强制开启 soak 覆盖,并且在 rerun_group=all 时还会让 umbrella 运行针对父级发布包制品执行 package Telegram E2E,因此完整的预发布候选不会悄悄跳过该 Telegram 包通道。
ProfileIntended useIncluded live/provider coverage
minimum最快的发布关键冒烟。OpenAI/core live path、用于 OpenAI 的 Docker live models、native gateway core、native OpenAI gateway profile、native OpenAI plugin,以及 Docker live gateway OpenAI。
stable默认发布批准配置文件。minimum 再加上 Anthropic 冒烟、Google、MiniMax、backend、native live test harness、Docker live CLI backend、Docker ACP bind、Docker Codex harness,以及一个 OpenCode Go 冒烟分片。
full更广泛的建议性扫描。stable 再加上建议性提供方、插件 live 分片和媒体 live 分片。

仅 full 额外包含的内容

这些套件会被 stable 跳过,并包含在 full 中:
AreaFull-only coverage
Docker live modelsOpenCode Go、OpenRouter、xAI、Z.ai 和 Fireworks。
Docker live gateway将建议性提供方拆分为 DeepSeek/Fireworks、OpenCode Go/OpenRouter 和 xAI/Z.ai 分片。
Native gateway provider profiles完整的 Anthropic Opus 和 Sonnet/Haiku 分片、Fireworks、DeepSeek、完整的 OpenCode Go model 分片、OpenRouter、xAI 和 Z.ai。
Native plugin live shardsPlugins A-K、L-N、O-Z other、Moonshot 和 xAI。
Native media live shards音频、Google music、MiniMax music,以及视频组 A-D。
stable 包含 native-live-src-gateway-profiles-anthropic-smokenative-live-src-gateway-profiles-opencode-go-smokefull 则改用更广泛的 Anthropic 和 OpenCode Go model 分片。定向重跑仍然可以使用聚合的 native-live-src-gateway-profiles-anthropicnative-live-src-gateway-profiles-opencode-go 句柄。

定向重跑

使用 rerun_group 来避免重复无关的发布区块:
Handle范围
all所有 Full Release Validation 阶段。
ci仅手动 full CI 子流程。
plugin-prerelease仅 Plugin Prerelease 子流程。
release-checks所有 OpenClaw Release Checks 阶段。
install-smoke从 Install Smoke 到 release checks。
cross-osCross-OS 发布检查。
live-e2e仓库/live E2E 和 Docker 发布路径验证。
packagePackage Acceptance。
qaQA parity 加上 QA live 运行线。
qa-parityQA parity 运行线,仅报告。
qa-liveQA live Matrix/Telegram,以及在启用时受控的 Discord、WhatsApp 和 Slack 运行线。
npm-telegram已发布包的 Telegram E2E;需要 release_package_specnpm_telegram_package_spec
当一个 live 套件失败时,使用 rerun_group=live-e2e 搭配 live_suite_filter。有效的过滤器 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-docker,以及 live-codex-harness-docker live-gateway-advisory-docker 句柄是其三个提供方分片的聚合重跑句柄,因此它仍会分发到所有 advisory Docker gateway 作业。 当一个 cross-OS 通道失败时,使用 rerun_group=cross-os 搭配 cross_os_suite_filter。该过滤器接受 OS id、suite id 或 OS/suite 对,例如 windows/packaged-upgradewindowspackaged-fresh。Cross-OS 摘要包含 packaged upgrade 通道的每阶段耗时,并且长时间运行的命令会打印 heartbeat 行,因此卡住的 Windows 更新会在作业超时前可见。 QA release-check failures block normal release validation. Required OpenClaw dynamic tool drift in the standard tier also blocks the release-check verifier. Tideclaw alpha runs may still treat non-package-safety release-check lanes as advisory. When live_suite_filter explicitly requests a gated QA live lane such as Discord, WhatsApp, or Slack, the matching OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED repo variable must be enabled; otherwise input capture fails instead of silently skipping the lane. Rerun rerun_group=qa, qa-parity, or qa-live when you need fresh QA evidence.

要保留的证据

保留 Full Release Validation 摘要作为发布级索引。它链接子运行 id,并包含最慢作业表。对于失败,先检查子工作流,然后重跑上面最小匹配的 handle。 有用的制品:
  • 来自 Full Release Validation 父流程和 OpenClaw Release Checksrelease-package-under-test
  • .artifacts/docker-tests/ 下的 Docker release-path 制品
  • Package Acceptance 的 package-under-test 和 Docker acceptance 制品
  • 每个 OS 和 suite 的 Cross-OS release-check 制品
  • QA parity、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