Full Release Validation 是發布產品驗證的總括流程。大多數工作
都在子工作流程中進行,因此失敗的執行環境可重新執行,而無須重新啟動
整個發布流程。在凍結 Code SHA 前執行發布準備;若背景機器人尚未提交
Control UI 語系輸出,此步驟會重新產生該輸出,接著強制執行與發布 CI
相同的嚴格零後援檢查。
將產品完整、但尚未更新變更日誌的提交凍結為 Code SHA,接著執行:
provider 也接受 anthropic 或 minimax,用於跨作業系統的新手引導及
端對端代理程式回合。此輔助工具會從 alpha/beta
套件版本推斷 beta 設定檔,否則使用 stable。使用
-f key=value 傳入替代工作流程輸入;僅在廣泛的建議性掃描中使用 -f release_profile=full。
此輔助工具會建立暫時的 release-ci/* 參照,固定至一個受信任的
origin/main 工作流程 SHA;只將目標 SHA 作為候選 ref 傳入,
並在驗證後刪除暫時參照。每個已分派的子流程都必須
回報相同的工作流程 SHA。傳入
-f reuse_evidence=false 以強制執行全新流程,或傳入
--workflow-sha <trusted-main-sha> 以選取目前 origin/main 仍可觸及的較舊工作流程提交。
工作流程本身絕不會建立或更新儲存庫參照。
延伸穩定版例外
延伸穩定版發布要求工作流程和目標都必須是 標準分支:pnpm ci:full-release 或 release-ci/*。發布會將該次執行的
分支、頭端/目標 SHA、資訊清單 workflowRef、ID 與嘗試次數,綁定至標準
分支和發布提交。
回移產品失敗的修正;對凍結目標的工具進行最小且保持行為不變的修復;
若是供應商、核准或執行器失敗,則在不變更原始碼的情況下重試。任何分支變更都需要全新且完整的執行。
不得因目標較舊而省略必要的
套件、安裝程式、更新、頻道或即時行為。
一般發布中,Code SHA 通過後,只產生並提交
CHANGELOG.md。這個新提交即為 Release SHA。針對
Release SHA 執行相同的輔助工具。只有在 GitHub 證明 Release
SHA 衍生自 Code SHA,且完整變更路徑集合恰好為
CHANGELOG.md 時,才會重複使用產品證據;npm 預檢與套件/安裝驗收仍會在
Release SHA 上執行。
release_profile=stable 和 release_profile=full 一律執行完整的
即時/Docker 耐久測試。傳入 run_release_soak=true,即可使用
beta 設定檔納入相同的耐久測試執行區。若驗證資訊清單缺少這項耐久測試和具阻擋性的產品效能證據,
穩定版發布會予以拒絕。
套件驗收通常會從解析後的
ref 建置候選 tarball,包括使用 pnpm ci:full-release 分派的完整 SHA 執行。beta
發布後,傳入 release_package_spec=openclaw@YYYY.M.PATCH-beta.N,即可在發布檢查、套件驗收、跨作業系統、
發布路徑 Docker 與套件 Telegram 中重複使用
已發布的 npm 套件。僅當套件驗收應刻意驗證不同套件時,才使用 package_acceptance_package_spec。
Codex 外掛即時套件執行區會遵循相同狀態:已發布的
release_package_spec 值會衍生 codex_plugin_spec=npm:@openclaw/codex@<version>;
SHA/成品執行會從所選參照封裝 extensions/codex;操作人員
也可直接為 npm:、npm-pack: 或 git: 外掛
來源設定 codex_plugin_spec。此執行區會授予該外掛所需的明確 Codex 命令列介面安裝核准,
接著執行 Codex 命令列介面預檢及同一工作階段的 OpenAI 代理程式回合。
其最後一個零重試、中等思考程度的回合,會在省略 Codex final 的情況下傳送可見進度、
讀取隨機化的工作區輸入、寫入完全相符的成品,
並傳送明確的完成訊息。這可捕捉 v2026.7.1 中一般進度傳送
會終止回合的迴歸問題。
頂層階段
對於rerun_group=all,會先執行
Check for reusable validation evidence 工作。它會尋找先前最新且通過的完整驗證,該驗證須具有相同的發布
設定檔、有效耐久測試設定和驗證輸入。完全相同目標的重新執行會使用
exact-target-full-validation-v1。若後代提交的完整差異恰好為
CHANGELOG.md,則使用 changelog-only-release-v1;所有產品執行區都會略過,
且驗證器會獨立重新檢查 GitHub 提交比較、不可變父成品、
子流程執行及分派記錄。任何其他目標變更都需要
全新的 Code SHA 驗證。傳入 reuse_evidence=false 以強制執行全新的完整
流程。只有 main 或標準且固定 SHA 的
release-ci/* 參照,其工作流程提交仍位於受信任的 main 譜系時,才會重複使用證據;
其他工作流程參照會重新執行所選執行區。
全新的套件相關驗證會先準備一個不可變 tarball 和一個 Docker
映像成品,再分派外掛發行前檢查與 OpenClaw 發布檢查。
兩個子流程都會在使用前驗證相同的套件 SHA、成品 ID、服務摘要、
產生者執行嘗試次數及 Docker 封存檔摘要。與套件無關的
裸 Docker 層使用內容定址的 GHCR 快取;候選版本特定映像
仍為不可變的 GitHub 成品。具有明確已發布
套件規格的聚焦執行則保留現有套件路徑。
此外,對於 rerun_group=all,Verify Docker runtime image assets 工作會使用
OPENCLAW_EXTENSIONS=diagnostics-otel,codex 建置 runtime-assets Docker 目標。
它會與其他階段並行執行,並由總括驗證器強制檢查;執行區分派前不再
等待它完成。較精簡的 rerun_group 會略過此預檢。
總括流程一律以僅成品模式分派產品效能流程。
OpenClaw Performance 僅允許排程執行,或明確設定 publish_reports=true 的
手動分派發布報告。僅成品防護必須成功完成,以證明發布器工作維持略過狀態。
全新及重複使用的證據都會記錄
controls.performanceReportPublication=artifact-only;若證據缺少相符且已正規化的效能子流程
證明,驗證器與重複使用選擇器會予以拒絕。
驗證器會將標準資訊清單上傳為
full-release-validation-<run-id>-<run-attempt>。證據工具會在下載該確切成品 ID 前,驗證其成品 ID、摘要、產生者執行及嘗試次數。它會限制下載的 ZIP 大小、依據 REST
sha256: 摘要驗證其位元組,並以串流方式讀取唯一允許且大小受限的資訊清單項目,而不解壓縮封存檔。為了支援較舊的
發布取用端,會暫時保留穩定名稱別名。驗證器一律優先採用含嘗試次數限定的成品;
作為過渡措施,只有當產生者為第 1 次嘗試的資訊清單 v2 時,才接受穩定名稱。
對後續嘗試及資訊清單 v3,則拒絕該舊名稱。
對於具有 rerun_group=all 的 ref=main、release/* 參照,以及 Tideclaw
alpha 參照,較新的統括執行會取代具有相同參照與重新執行群組的較舊執行。
父執行取消時,其監控程序會取消所有已分派的子工作流程。
標籤驗證執行與固定 SHA 驗證執行不會互相取消。
發布檢查階段
OpenClaw Release Checks 是最大的子工作流程。它只解析目標一次,並在可用時驗證統括工作流程的共用套件成品。
直接或聚焦分派會在套件或 Docker 相關階段需要時,準備自己的 release-package-under-test
成品。
Docker 發布路徑區塊
當live_suite_filter 為空時,Docker 發布路徑階段會執行以下區塊:
若只有一個 Docker 通道失敗,請在可重複使用的即時/E2E 工作流程中使用指定的
docker_lanes=<lane[,lane]>。若可用,發布成品會包含每個通道的重新執行命令,以及套件成品與映像檔重複使用輸入。
發布設定檔
release_profile 主要控制發布檢查內即時測試/供應商的涵蓋廣度。它不會移除一般完整 CI、外掛預發佈、安裝冒煙測試、套件驗收或 QA Lab。穩定版和完整設定檔一律執行詳盡的儲存庫/即時 E2E,以及 Docker 發布路徑浸泡測試。Beta 設定檔可透過 run_release_soak=true 選擇加入。套件驗收為每個完整候選版本提供標準套件 Telegram E2E,因此總括流程不會重複執行該即時輪詢程式。
僅完整設定檔新增的項目
stable 會略過以下測試套件,而 full 會包含它們:
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,避免重複執行不相關的發布執行環境:
若一個即時測試套件失敗,請搭配
rerun_group=live-e2e 使用 live_suite_filter。有效的篩選器 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。
若要指定重新執行 QA 傳輸測試,請設定 rerun_group=qa-live,並使用標準選擇器 qa-live-matrix、qa-live-telegram、qa-live-discord、qa-live-whatsapp 或 qa-live-slack。
live-gateway-advisory-docker 控制代號是其三個供應商分片的彙總重新執行控制代號,因此仍會展開執行所有諮詢性 Docker 閘道工作。
若一個跨作業系統通道失敗,請搭配 rerun_group=cross-os 使用 cross_os_suite_filter。篩選器接受作業系統 ID、測試套件 ID 或作業系統/測試套件配對,例如 windows/packaged-upgrade、windows 或 packaged-fresh。跨作業系統摘要會包含套件升級通道各階段的耗時,而長時間執行的命令會輸出心跳偵測行,讓卡住的更新能在工作逾時前被發現。
只有指定的 Matrix、Telegram 及 QA 執行階段工具涵蓋通道中發生的 QA 發布檢查失敗,才會阻擋一般發布驗證。QA 一致性、執行階段一致性,以及受閘門控管的 Discord、WhatsApp 和 Slack 即時通道屬於諮詢性質,會發布狀態成品而不阻擋發布驗證器。Tideclaw Alpha 執行仍可將不涉及套件安全性的發布檢查通道視為諮詢性質。使用 release_profile=beta 時,Run repo/live E2E validation 即時供應商測試套件屬於諮詢性質:第三方模型部署會在發布期間於底層發生變更,因此 Beta 會將其失敗顯示為警告,而穩定版和完整設定檔仍會讓這些失敗阻擋流程。當 live_suite_filter 明確要求 Discord、WhatsApp 或 Slack 等受閘門控管的 QA 即時通道時,必須啟用相符的 OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED 儲存庫變數;否則輸入擷取會失敗,而非默默略過該通道。需要新的 QA 證據時,請重新執行 rerun_group=qa、qa-parity 或 qa-live。
應保留的證據
保留Full Release Validation 摘要作為發布層級索引。它會連結子執行 ID,並包含最耗時工作表格。若發生失敗,請先檢查子工作流程,再重新執行上述最小的相符控制代號。
一般發布需記錄 Code SHA 與 Release SHA、重複使用政策與變更路徑集合、綠燈 Code SHA 父執行,以及輕量 Release SHA 父執行。對於延伸穩定版,需記錄標準分支、確切發布 SHA、新的父執行 ID 與嘗試次數、工作流程參照、每個子執行,以及任何凍結目標相容性修復或刻意省略的項目。
實用成品:
release-package-under-test,來自OpenClaw Release Checks.artifacts/docker-tests/下的 Docker 發布路徑成品- 套件驗收
package-under-test與 Docker 驗收成品 - 各作業系統和測試套件的跨作業系統發布檢查成品
- QA 一致性、執行階段一致性,以及指定的 Matrix、Telegram、Discord、WhatsApp 或 Slack 成品
工作流程檔案
.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/install-smoke-reusable.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