Release and CI

完整發布驗證

Full Release Validation 是發布總控流程。它是預發布證明的單一手動 入口點,但大多數工作會在子工作流程中進行,因此失敗的機器可以重新執行, 不必重啟整個發布。

請從受信任的工作流程 ref 執行,通常是 main,並將發布分支、 標籤或完整 commit SHA 作為 ref 傳入:

bash
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

子工作流程會使用受信任的工作流程 ref 作為測試框架,並使用輸入 ref 作為待測候選版本。這樣在驗證較舊的發布分支或標籤時, 仍可使用新的驗證邏輯。

release_profile=stablerelease_profile=full 一律會執行完整的 即時/Docker 浸泡測試。傳入 run_release_soak=true 可在 beta 設定檔中 包含相同的浸泡測試通道。Stable 發布會拒絕缺少此浸泡測試與阻斷性產品效能證據的驗證資訊清單。

套件驗收通常會從解析出的 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/成品執行會從選定的 ref 打包 extensions/codex;操作員也可以直接設定 codex_plugin_spec,用於 npm:npm-pack:git: 外掛來源。該通道會授予此插件所需的明確 Codex 命令列介面安裝批准, 然後執行 Codex 命令列介面預檢與同一工作階段的 OpenAI agent 回合。

頂層階段

階段 詳細資料
目標解析 工作: Resolve target ref
子工作流程:
證明: 解析發布分支、標籤或完整 commit SHA,並記錄選定的輸入。
重新執行: 如果此項失敗,重新執行總控流程。
Vitest 與一般 CI 工作: Run normal full CI
子工作流程: CI
證明: 針對目標 ref 執行手動完整 CI 圖,包括 Linux 節點通道、內建外掛 shards、外掛與通道合約 shards、節點 22 相容性、check-*check-additional-*、建置成品 smoke 檢查、文件檢查、Python Skills、Windows、macOS、Control UI i18n,以及透過總控流程執行的 Android。
重新執行: rerun_group=ci
外掛預發布 工作: Run plugin prerelease validation
子工作流程: Plugin Prerelease
證明: 僅發布使用的外掛靜態檢查、agentic 外掛涵蓋、完整 extension 批次 shards、外掛預發布 Docker 通道,以及供相容性分流使用的非阻斷性 plugin-inspector-advisory 成品。
重新執行: rerun_group=plugin-prerelease
發布檢查 工作: Run release/live/Docker/QA validation
子工作流程: OpenClaw Release Checks
證明: 安裝 smoke、跨作業系統套件檢查、套件驗收、QA Lab parity、即時 Matrix,以及即時 Telegram。Stable 與 full 設定檔也會執行完整的即時/E2E 套件與 Docker 發布路徑 chunks;beta 可透過 run_release_soak=true 選擇加入。
重新執行: rerun_group=release-checks 或更窄的 release-checks handle。
套件 Telegram 工作: Run package Telegram E2E
子工作流程: NPM Telegram Beta E2E
證明: 當設定 release_package_specnpm_telegram_package_spec 時,執行聚焦的已發布套件 Telegram E2E。完整候選版本驗證則使用標準的套件驗收 Telegram E2E。
重新執行: 使用 rerun_group=npm-telegram 並搭配 release_package_specnpm_telegram_package_spec
總控驗證器 工作: Verify full validation
子工作流程:
證明: 重新檢查已記錄的子執行結論,並從子工作流程附加最慢工作的表格。
重新執行: 在重新執行失敗的子流程並轉綠後,只重新執行此工作。

對於 ref=mainrerun_group=all,較新的總控流程會取代較舊的流程。 父流程被取消時,其監視器會取消任何已派發的子工作流程。發布分支與標籤驗證執行 預設不會彼此取消。

發布檢查階段

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

階段 詳細資訊
發布目標 作業: Resolve target ref
支援工作流程:
測試: 選取的 ref、選用的預期 SHA、設定檔、重新執行群組,以及聚焦的即時套件篩選器。
重新執行: rerun_group=release-checks
套件成品 作業: Prepare release package artifact
支援工作流程:
測試: 打包或解析一個候選 tarball,並上傳 release-package-under-test 供下游套件面向檢查使用。
重新執行: 受影響的套件、跨作業系統或即時/E2E 群組。
安裝煙霧測試 作業: Run install smoke
支援工作流程: Install Smoke
測試: 完整安裝路徑,包含重用根 Dockerfile 煙霧測試映像、QR 套件安裝、根與閘道 Docker 煙霧測試、安裝程式 Docker 測試、Bun 全域安裝 image-provider 煙霧測試,以及快速的內建外掛安裝/解除安裝 E2E。
重新執行: rerun_group=install-smoke
跨作業系統 作業: cross_os_release_checks
支援工作流程: OpenClaw Cross-OS Release Checks (Reusable)
測試: 針對選取的供應商與模式,在 Linux、Windows 和 macOS 上執行全新安裝與升級通道,使用候選 tarball 加上基準套件。
重新執行: 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)
測試: 針對共用套件成品執行發布路徑 Docker 區塊。
執行: run_release_soak=truerelease_profile=full,或聚焦的 rerun_group=live-e2e
重新執行: rerun_group=live-e2e
套件驗收 作業: Run package acceptance
支援工作流程: Package Acceptance
測試: 離線外掛套件 fixtures、外掛更新、標準 mock-OpenAI Telegram 套件 E2E,以及針對同一個 tarball 的已發布升級存活檢查。阻斷式發布檢查使用預設的最新已發布基準;浸泡檢查會擴展到 2026.4.23 當天或之後的每個穩定 npm 發布版本,加上已回報問題的 fixtures。
重新執行: rerun_group=package
QA 同等性 作業: Run QA Lab parity laneRun QA Lab parity report
支援工作流程: 直接作業
測試: 候選與基準 agentic 同等性套件,接著產生同等性報告。
重新執行: rerun_group=qa-parityrerun_group=qa
QA 即時 Matrix 作業: Run QA Lab live Matrix lane
支援工作流程: 直接作業
測試: qa-live-shared 環境中的快速即時 Matrix QA 設定檔。
重新執行: rerun_group=qa-livererun_group=qa
QA 即時 Telegram 作業: Run QA Lab live Telegram lane
支援工作流程: 直接作業
測試: 使用 Convex CI 認證租約的即時 Telegram QA。
重新執行: rerun_group=qa-livererun_group=qa
發布驗證器 作業: Verify release checks
支援工作流程:
測試: 選取的重新執行群組所需的發布檢查作業。
重新執行: 聚焦的子作業通過後重新執行。

Docker 發布路徑區塊

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

區塊 涵蓋範圍
core 核心 Docker 發布路徑煙霧測試通道。
package-update-openai OpenAI 套件安裝/更新行為、Codex 隨選安裝、Codex 外掛即時回合,以及 Chat Completions 工具呼叫。
package-update-anthropic Anthropic 套件安裝與更新行為。
package-update-core 供應商中立的套件與更新行為。
plugins-runtime-plugins 執行外掛行為的外掛執行階段通道。
plugins-runtime-services 服務支援與即時外掛執行階段通道;在要求時包含 OpenWebUI。
plugins-runtime-install-a through plugins-runtime-install-h 為平行發布驗證拆分的外掛安裝/執行階段批次。

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

發布設定檔

release_profile 主要控制發布檢查中的即時/供應商廣度。它不會移除一般完整 CI、外掛預發布、安裝煙霧測試、套件驗收或 QA Lab。穩定與完整設定檔一律執行詳盡的儲存庫/即時 E2E 和 Docker 發布路徑浸泡涵蓋。Beta 設定檔可以透過 run_release_soak=true 選擇加入。套件驗收會為每個完整候選提供標準套件 Telegram E2E,因此總控流程不會重複該即時輪詢器。

設定檔 預期用途 包含的即時/供應商涵蓋範圍
minimum 最快的發布關鍵煙霧測試。 OpenAI/核心即時路徑、OpenAI 的 Docker 即時模型、原生閘道核心、原生 OpenAI 閘道設定檔、原生 OpenAI 外掛,以及 Docker 即時閘道 OpenAI。
stable 預設發布核准設定檔。 minimum 加上 Anthropic 煙霧測試、Google、MiniMax、後端、原生即時測試工具、Docker 即時命令列介面後端、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-smokefull 則改用更廣泛的 Anthropic 和 OpenCode Go 模型分片。聚焦的重新執行仍可使用彙總的 native-live-src-gateway-profiles-anthropicnative-live-src-gateway-profiles-opencode-go 控制代碼。

聚焦的重新執行

使用 rerun_group 以避免重複執行無關的發佈方塊:

Handle 範圍
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,加上啟用時受閘控的 Discord、WhatsApp 與 Slack 通道。
npm-telegram 已發佈套件的 Telegram E2E;需要 release_package_specnpm_telegram_package_spec

當一個即時套件失敗時,搭配 rerun_group=live-e2e 使用 live_suite_filter。 有效的篩選器 id 定義於可重用的即時/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 handle 是其三個供應商分片的彙總重新執行 handle, 因此仍會展開到所有 advisory Docker 閘道作業。

當一個跨作業系統通道失敗時,搭配 rerun_group=cross-os 使用 cross_os_suite_filter。 篩選器接受作業系統 id、套件 id,或作業系統/套件配對, 例如 windows/packaged-upgradewindowspackaged-fresh。跨作業系統 摘要包含套件化升級通道的各階段計時,而長時間執行的 命令會列印心跳偵測行,讓卡住的 Windows 更新能在 作業逾時前被看見。

QA 發佈檢查失敗會阻擋一般發佈驗證。標準層級中必要的 OpenClaw 動態工具漂移也會阻擋發佈檢查驗證器。 Tideclaw alpha 執行仍可將非套件安全性的發佈檢查通道視為 advisory。當 live_suite_filter 明確要求受閘控的 QA 即時通道, 例如 Discord、WhatsApp 或 Slack 時,對應的 OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED 儲存庫變數必須啟用;否則 輸入擷取會失敗,而不是默默略過該通道。當你需要新的 QA 證據時, 重新執行 rerun_group=qaqa-parityqa-live

要保留的證據

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

有用的成品:

  • 來自 OpenClaw Release Checksrelease-package-under-test
  • .artifacts/docker-tests/ 下的 Docker 發佈路徑成品
  • 套件驗收的 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
Was this useful?
On this page

On this page