Skip to content

完整發布驗證

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 會執行阻擋發布的通道並跳過詳盡的 Live/Docker soak。傳入 run_release_soak=true 以在穩定版本執行中包含 soak 通道。release_profile=full 總是啟用 soak 通道,因此廣泛的諮詢性設定檔不會靜默地降低覆蓋率。

Package Acceptance 通常會根據解析出的 ref 建構候選 tarball,包括透過 pnpm ci:full-release 分派的全 SHA 執行。在 beta 發佈後,請傳入 [email protected] 以在 release 檢查、Package Acceptance、跨作業系統、release-path 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;操作員可以直接設定 codex_plugin_spec 用於 npm:npm-pack:git: 外掛程式來源。該通道會授予該外掛程式所需的明確 Codex CLI 安裝核准,然後執行 Codex CLI 預檢及同工作階段的 OpenAI agent 輪次。

階段詳細資訊
目標解析Job: Resolve target ref
Child workflow:
Proves: 解析 release 分支、標籤或完整 commit SHA,並記錄選取的輸入。
Rerun: 如果失敗,請重新執行 umbrella。
Vitest 和一般 CIJob: Run normal full CI
Child workflow: CI
Proves: 針對目標 ref 進行的手動完整 CI 圖譜,包括 Linux Node 通道、捆綁的外掛程式分片、外掛程式與通道合約分片、Node 22 相容性、check-*check-additional-*、已建構成品的煙霧測試、文件檢查、Python 技能、Windows、macOS、Control UI i18n,以及透過 umbrella 執行的 Android。
Rerun: rerun_group=ci
插件發行前版本Job: Run plugin prerelease validation
Child workflow: Plugin Prerelease
Proves: 僅限 release 的外掛程式靜態檢查、agentic 外掛程式覆蓋率、完整擴充功能批次分片、外掛程式發佈前 Docker 通道,以及用於相容性分類的非阻塞性 plugin-inspector-advisory 成品。
Rerun: 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 或更窄的 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
證明: 針對使用 release_profile=fullrerun_group=all 提供基於父級成果的 Telegram 套件證明,或在設定 release_package_specnpm_telegram_package_spec 時提供基於已發佈套件的 Telegram 證明。
重新執行: 使用 release_package_specnpm_telegram_package_spec 重新執行 rerun_group=npm-telegram
總管驗證器工作: Verify full validation
子工作流程:
證明: 重新檢查記錄的子執行結論,並附加來自子工作流程的最慢工作表。
重新執行: 在重新執行失敗的子項至通過狀態後,僅重新執行此工作。

對於 ref=mainrerun_group=all,較新的總管會取代較舊的總管。 當父項被取消時,其監視器會取消任何它已經分派的子工作流程。發行分支和標記驗證執行預設不會互相取消。

OpenClaw Release Checks 是最大的子工作流程。它會解析目標一次,並在面向套件或 Docker 的階段需要時,準備共用的 release-package-under-test 成果。

階段詳細資料
發行目標Job: Resolve target ref
Backing workflow:
Tests: 已選取的 ref、可選的預期 SHA、設定檔 (profile)、重新執行群組以及專注的即時套件篩選器。
Rerun: rerun_group=release-checks
套件構件Job: Prepare release package artifact
Backing workflow:
Tests: 封裝或解析一個候選 tarball 並上傳 release-package-under-test 以供下游面向套件的檢查使用。
Rerun: 受影響的套件、跨作業系統 (cross-OS) 或即時/E2E 群組。
安裝冒煙測試Job: Run install smoke
Backing workflow: Install Smoke
Tests: 完整安裝路徑,包含重用根 Dockerfile 煙霧測試映像、QR 套件安裝、根層級與閘道 Docker 煙霧測試、安裝程式 Docker 測試、Bun 全域安裝映像提供者煙霧測試,以及快速內建外掛程式安裝/解除安裝 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
Repo 和即時 E2EJob: Run repo/live E2E validation
Backing workflow: OpenClaw Live And E2E Checks (Reusable)
Tests: 儲存庫 E2E、即時快取、OpenAI WebSocket 串流、原生即時提供者和外掛程式分片,以及由 release_profile 選取的 Docker 支援即時模型/後端/閘道測試工具。
Runs: run_release_soak=truerelease_profile=full 或專注的 rerun_group=live-e2e
Rerun: rerun_group=live-e2e,可選擇搭配 live_suite_filter
Docker release pathJob: Run Docker release-path validation
Backing workflow: OpenClaw Live And E2E Checks (Reusable)
Tests: 針對共用套件產物執行發行路徑 Docker 區塊。
Runs: run_release_soak=truerelease_profile=full 或專注的 rerun_group=live-e2e
Rerun: rerun_group=live-e2e
Package AcceptanceJob: Run package acceptance
Backing workflow: Package Acceptance
Tests: 離線插件套件 fixtures、插件更新、模擬 OpenAI Telegram 套件驗收,以及針對相同 tarball 的發布升級存活檢查。阻塞性發布檢查使用預設的最新發布基線;浸泡檢查擴展到 2026.4.23 之後的每個穩定 npm 發行版以及回報問題的 fixtures。
Rerun: rerun_group=package
QA parityJob: Run QA Lab parity laneRun QA Lab parity report
Backing workflow: direct jobs
Tests: 候選版本與基線代理同義打包,然後是同義報告。
Rerun: rerun_group=qa-parityrerun_group=qa
QA live MatrixJob: Run QA Lab live Matrix lane
Backing workflow: direct job
Tests: qa-live-shared 環境中的快速即時 Matrix QA 配置文件。
Rerun: rerun_group=qa-livererun_group=qa
QA live TelegramJob: Run QA Lab live Telegram lane
Backing workflow: direct job
Tests: 使用 Convex CI 憑證租約的即時 Telegram QA。
Rerun: rerun_group=qa-livererun_group=qa
版本驗證器Job: Verify release checks
Backing workflow: none
Tests: 所選重新執行群組所需的發布檢查作業。
Rerun: 等待焦點子作業通過後重新執行。

live_suite_filter 為空時,Docker 發布路徑階段會執行這些區塊:

區塊覆蓋範圍
core核心 Docker 發布路徑 smoke lanes。
package-update-openaiOpenAI 套件安裝/更新行為、Codex 按需安裝、Codex 插件即時輪替,以及 Chat Completions 工具呼叫。
package-update-anthropicAnthropic 套件安裝和更新行為。
package-update-core提供者中立的套件和更新行為。
plugins-runtime-plugins執行插件行為的插件執行時 lanes。
plugins-runtime-services服務支援和即時插件執行時 lanes;視情況包含 OpenWebUI。
plugins-runtime-install-aplugins-runtime-install-h為並行版本驗證分割的插件安裝/執行時批次。

當只有一個 Docker 通道失敗時,在可重複使用的即時/E2E 工作流程上使用目標 docker_lanes=<lane[,lane]>。發布產物包含每通道重新執行命令,並在可用時包含套件產物和映像檔重複使用輸入。

release_profile 主要控制發行檢查中的 live/provider 範圍。它不會移除正常的完整 CI、Plugin Prerelease、安裝冒煙測試、套件驗收或 QA Lab。對於 stable,完整的 repo/live E2E 和 Docker release-path 區塊屬於浸入測試 覆蓋範圍,並在 run_release_soak=true 時執行。full 會強制開啟浸入測試覆蓋範圍,並且在 rerun_group=all 時讓總管工作流程針對父發行套件成品執行套件 Telegram E2E,這樣完整的發行前候選版本才不會在不知情的情況下跳過該 Telegram 套件通道。

設定檔預期用途包含的即時/提供者覆蓋範圍
minimum最快的發布關鍵冒煙測試。OpenAI/core 即時路徑、OpenAI 的 Docker 即時模型、原生閘道核心、原生 OpenAI 閘道設定檔、原生 OpenAI 外掛程式,以及 Docker 即時閘道 OpenAI。
stable預設發布核准設定檔。minimum 加上 Anthropic 冒煙測試、Google、MiniMax、後端、原生 live 測試框架、Docker live CLI 後端、Docker ACP bind、Docker Codex 框架以及一個 OpenCode Go 冒煙測試分片。
full廣泛諮詢掃描。stable 加上 advisory providers、plugin live 分片和 media live 分片。

這些測試套件會被 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-smokefull 則改用更廣泛的 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-e2eRepo/live E2E 和 Docker release-path 驗證。
package套件驗收。
qaQA parity 以及 QA live lanes。
qa-parityQA parity lanes 且僅報告。
qa-live僅限 QA live Matrix 和 Telegram。
npm-telegram已發布套件 Telegram E2E;需要 release_package_specnpm_telegram_package_spec

當其中一個 live suite 失敗時,使用 live_suite_filter 搭配 rerun_group=live-e2e。 有效的 filter id 定義在可重複使用的 live/E2E workflow 中,包括 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 handle 是針對其三個 provider shards 的彙總重新執行 handle,因此它仍然會分發到所有 advisory Docker gateway jobs。

當其中一個 cross-OS lane 失敗時,使用 cross_os_suite_filter 搭配 rerun_group=cross-os。此 filter 接受 OS id、suite id 或 OS/suite 組合, 例如 windows/packaged-upgradewindowspackaged-fresh。Cross-OS 摘要包含打包升級 lanes 的各階段時間,而長時間執行的指令會印出 heartbeat lines, 因此在作業逾時前可以看到卡住的 Windows 更新。

QA release-check lanes 屬於 advisory,但標準 runtime tool coverage gate 除外。標準層級中所需的 OpenClaw dynamic tool drift 會阻擋 release-check verifier;其他僅限 QA 的失敗會回報為警告。當您需要新的 QA 證據時,請重新執行 rerun_group=qaqa-parityqa-live

Full Release Validation 摘要保留為發布層級的索引。它會連結子執行 ID 並包含最慢作業表格。若發生失敗,請先檢查子工作流程,然後重新執行上述符合條件的最小 handle。

有用的產出檔案:

  • 來自 Full Release Validation 父項的 release-package-under-testOpenClaw Release Checks
  • .artifacts/docker-tests/ 下的 Docker release-path 構件
  • Package Acceptance package-under-test 和 Docker acceptance 構件
  • 每個 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