Release and CI

完全なリリース検証

Full Release Validation はリリース用の包括ワークフローです。これはリリース前の証明のための単一の手動 エントリポイントですが、ほとんどの作業は子ワークフローで実行されるため、 失敗したボックスをリリース全体を再開せずに再実行できます。

信頼されたワークフロー ref、通常は main から実行し、リリースブランチ、 タグ、または完全なコミット 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 は常に網羅的な live/Docker ソークを実行します。ベータプロファイルで同じソークレーンを含めるには run_release_soak=true を渡します。Stable 公開では、このソークと ブロッキング対象の製品パフォーマンスエビデンスがない検証マニフェストを拒否します。

パッケージ受け入れは通常、解決された ref から候補 tarball をビルドします。 これには pnpm ci:full-release でディスパッチされた完全 SHA の実行も含まれます。ベータ公開後は、 release_package_spec=openclaw@YYYY.M.PATCH-beta.N を渡して、出荷済み npm パッケージを リリースチェック、パッケージ受け入れ、クロス OS、リリースパス Docker、パッケージ Telegram で再利用します。 パッケージ受け入れで意図的に別のパッケージを証明する必要がある場合にのみ、 package_acceptance_package_spec を使用します。 Codex Plugin の live パッケージレーンは同じ状態に従います。公開済みの release_package_spec 値から codex_plugin_spec=npm:@openclaw/codex@<version> が導出されます。 SHA/アーティファクト実行では選択された ref から extensions/codex をパックします。また、オペレーターは npm:npm-pack:、または git: Plugin ソース向けに codex_plugin_spec を直接設定できます。このレーンは、その Plugin に必要な明示的な Codex CLI インストール承認を付与し、 その後 Codex CLI のプリフライトと同一セッションの OpenAI エージェントターンを実行します。

トップレベルステージ

ステージ 詳細
ターゲット解決 ジョブ: Resolve target ref
子ワークフロー: なし
証明内容: リリースブランチ、タグ、または完全なコミット SHA を解決し、選択された入力を記録します。
再実行: これが失敗した場合は包括ワークフローを再実行します。
Vitest と通常 CI ジョブ: Run normal full CI
子ワークフロー: CI
証明内容: ターゲット ref に対する手動の完全 CI グラフ。Linux Node レーン、同梱 Plugin シャード、Plugin とチャンネル契約シャード、Node 22 互換性、check-*check-additional-*、ビルド済みアーティファクトのスモークチェック、ドキュメントチェック、Python Skills、Windows、macOS、Control UI i18n、包括ワークフロー経由の Android を含みます。
再実行: rerun_group=ci
Plugin プレリリース ジョブ: Run plugin prerelease validation
子ワークフロー: Plugin Prerelease
証明内容: リリース専用の Plugin 静的チェック、エージェント型 Plugin カバレッジ、完全な拡張バッチシャード、Plugin プレリリース Docker レーン、互換性トリアージ用の非ブロッキング plugin-inspector-advisory アーティファクト。
再実行: rerun_group=plugin-prerelease
リリースチェック ジョブ: Run release/live/Docker/QA validation
子ワークフロー: OpenClaw Release Checks
証明内容: インストールスモーク、クロス OS パッケージチェック、パッケージ受け入れ、QA Lab パリティ、live Matrix、live Telegram。Stable および full プロファイルでは、網羅的な live/E2E スイートと Docker リリースパスチャンクも実行します。ベータは run_release_soak=true でオプトインできます。
再実行: rerun_group=release-checks またはより狭い release-checks ハンドル。
パッケージ Telegram ジョブ: Run package Telegram E2E
子ワークフロー: NPM Telegram Beta E2E
証明内容: release_package_spec または npm_telegram_package_spec が設定されている場合の、公開済みパッケージに焦点を当てた Telegram E2E。完全な候補検証では、代わりに正規のパッケージ受け入れ Telegram E2E を使用します。
再実行: release_package_spec または npm_telegram_package_spec を指定して rerun_group=npm-telegram
包括検証 ジョブ: Verify full validation
子ワークフロー: なし
証明内容: 記録された子実行の結論を再チェックし、子ワークフローから最も遅いジョブの表を追記します。
再実行: 失敗した子を再実行してグリーンにした後、このジョブのみを再実行します。

ref=main かつ rerun_group=all の場合、新しい包括ワークフローは古いものを置き換えます。 親がキャンセルされると、そのモニターはすでにディスパッチ済みの子ワークフローをすべて キャンセルします。リリースブランチとタグの検証実行は、デフォルトでは互いにキャンセルしません。

リリースチェックのステージ

OpenClaw Release Checks は最大の子ワークフローです。ターゲットを 一度だけ解決し、パッケージまたは Docker 向けのステージで必要な場合に共有の release-package-under-test アーティファクトを準備します。

ステージ 詳細
リリースターゲット ジョブ: Resolve target ref
Backing workflow: なし
テスト: 選択された ref、任意の期待 SHA、プロファイル、再実行グループ、集中 live スイートフィルター。
再実行: rerun_group=release-checks
パッケージアーティファクト ジョブ: Prepare release package artifact
Backing workflow: なし
テスト: 1 つの候補 tarball をパックまたは解決し、下流のパッケージ向けチェック用に release-package-under-test をアップロードする。
再実行: 影響を受けたパッケージ、クロス OS、または live/E2E グループ。
インストールスモーク ジョブ: Run install smoke
Backing workflow: Install Smoke
テスト: ルート Dockerfile スモークイメージ再利用、QR パッケージインストール、ルートおよび Gateway Docker スモーク、インストーラー Docker テスト、Bun グローバルインストールの image-provider スモーク、高速なバンドル Plugin インストール/アンインストール E2E を含む完全なインストールパス。
再実行: rerun_group=install-smoke
クロス OS ジョブ: cross_os_release_checks
Backing workflow: OpenClaw Cross-OS Release Checks (Reusable)
テスト: 候補 tarball とベースラインパッケージを使用し、選択されたプロバイダーとモードについて Linux、Windows、macOS 上で新規およびアップグレードレーンを実行する。
再実行: rerun_group=cross-os
リポジトリおよび live E2E ジョブ: Run repo/live E2E validation
Backing workflow: OpenClaw Live And E2E Checks (Reusable)
テスト: リポジトリ E2E、live キャッシュ、OpenAI websocket ストリーミング、ネイティブ live プロバイダーおよび Plugin シャード、release_profile で選択された Docker ベースの live モデル/バックエンド/Gateway ハーネス。
実行条件: run_release_soak=truerelease_profile=full、または集中 rerun_group=live-e2e
再実行: rerun_group=live-e2e、任意で live_suite_filter を指定。
Docker リリースパス ジョブ: Run Docker release-path validation
Backing workflow: OpenClaw Live And E2E Checks (Reusable)
テスト: 共有パッケージアーティファクトに対するリリースパス Docker チャンク。
実行条件: run_release_soak=truerelease_profile=full、または集中 rerun_group=live-e2e
再実行: rerun_group=live-e2e
Package Acceptance ジョブ: Run package acceptance
Backing workflow: Package Acceptance
テスト: オフライン Plugin パッケージフィクスチャ、Plugin 更新、標準 mock-OpenAI Telegram パッケージ E2E、および同じ tarball に対する published-upgrade survivor チェック。ブロック対象のリリースチェックはデフォルトの最新公開ベースラインを使用し、ソークチェックは 2026.4.23 以降のすべての安定 npm リリースと報告済み issue フィクスチャに拡張される。
再実行: rerun_group=package
QA パリティ ジョブ: Run QA Lab parity lane および Run QA Lab parity report
Backing workflow: 直接ジョブ
テスト: 候補およびベースラインのエージェント型パリティパック、その後にパリティレポート。
再実行: rerun_group=qa-parity または rerun_group=qa
QA live Matrix ジョブ: Run QA Lab live Matrix lane
Backing workflow: 直接ジョブ
テスト: qa-live-shared 環境での高速 live Matrix QA プロファイル。
再実行: rerun_group=qa-live または rerun_group=qa
QA live Telegram ジョブ: Run QA Lab live Telegram lane
Backing workflow: 直接ジョブ
テスト: Convex CI 認証情報リースを使用する live Telegram QA。
再実行: rerun_group=qa-live または rerun_group=qa
リリース検証 ジョブ: Verify release checks
Backing workflow: なし
テスト: 選択された再実行グループに必要なリリースチェックジョブ。
再実行: 集中子ジョブが合格した後に再実行。

Docker リリースパスチャンク

Docker リリースパスステージは、live_suite_filter が空の場合にこれらのチャンクを実行する:

チャンク カバレッジ
core コア Docker リリースパススモークレーン。
package-update-openai OpenAI パッケージのインストール/更新動作、Codex オンデマンドインストール、Codex Plugin の live ターン、Chat Completions ツール呼び出し。
package-update-anthropic Anthropic パッケージのインストールおよび更新動作。
package-update-core プロバイダー非依存のパッケージおよび更新動作。
plugins-runtime-plugins Plugin 動作を実行する Plugin ランタイムレーン。
plugins-runtime-services サービス backed および live Plugin ランタイムレーン。要求時は OpenWebUI を含む。
plugins-runtime-install-a through plugins-runtime-install-h 並列リリース検証用に分割された Plugin インストール/ランタイムバッチ。

1 つの Docker レーンだけが失敗した場合は、再利用可能な live/E2E ワークフローで 対象を絞った docker_lanes=<lane[,lane]> を使用する。リリースアーティファクトには、利用可能な場合に パッケージアーティファクトおよびイメージ再利用の入力を含むレーンごとの再実行 コマンドが含まれる。

リリースプロファイル

release_profile は主に、リリースチェック内の live/プロバイダーの幅を制御する。 通常の完全 CI、Plugin Prerelease、インストールスモーク、パッケージ acceptance、QA Lab は削除しない。stable および full プロファイルは常に、網羅的なリポジトリ/live E2E と Docker リリースパスのソークカバレッジを実行する。beta プロファイルは run_release_soak=true でオプトインできる。Package Acceptance はすべての full 候補に標準パッケージ Telegram E2E を提供するため、umbrella はその live poller を重複実行しない。

プロファイル 想定用途 含まれる live/プロバイダーカバレッジ
minimum 最速のリリースクリティカルスモーク。 OpenAI/コア live パス、OpenAI 用 Docker live モデル、ネイティブ Gateway コア、ネイティブ OpenAI Gateway プロファイル、ネイティブ OpenAI Plugin、Docker live Gateway OpenAI。
stable デフォルトのリリース承認プロファイル。 minimum に加えて Anthropic スモーク、Google、MiniMax、バックエンド、ネイティブ live テストハーネス、Docker live CLI バックエンド、Docker ACP bind、Docker Codex ハーネス、OpenCode Go スモークシャード。
full 広範な advisory スイープ。 stable に加えて advisory プロバイダー、Plugin live シャード、メディア live シャード。

full のみの追加

これらのスイートは stable ではスキップされ、full に含まれる:

領域 full のみのカバレッジ
Docker live モデル OpenCode Go、OpenRouter、xAI、Z.ai、Fireworks。
Docker live Gateway DeepSeek/Fireworks、OpenCode Go/OpenRouter、xAI/Z.ai シャードに分割された advisory プロバイダー。
ネイティブ Gateway プロバイダープロファイル Anthropic Opus および Sonnet/Haiku の full シャード、Fireworks、DeepSeek、OpenCode Go の full モデルシャード、OpenRouter、xAI、Z.ai。
ネイティブ Plugin live シャード Plugins A-K、L-N、O-Z other、Moonshot、xAI。
ネイティブメディア live シャード Audio、Google music、MiniMax music、video groups A-D。

stablenative-live-src-gateway-profiles-anthropic-smokenative-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 を使って、無関係なリリースボックスの繰り返しを避けます。

ハンドル スコープ
all すべての完全リリース検証ステージ。
ci 手動の完全CI子ワークフローのみ。
plugin-prerelease Pluginプレリリース子ワークフローのみ。
release-checks すべてのOpenClawリリースチェックステージ。
install-smoke インストールスモークからリリースチェックまで。
cross-os クロスOSリリースチェック。
live-e2e リポジトリ/live E2EとDockerリリースパス検証。
package パッケージ受け入れ。
qa QAパリティとQA liveレーン。
qa-parity QAパリティレーンとレポートのみ。
qa-live QA live Matrix/Telegramに加え、有効時はゲート付きDiscord、WhatsApp、Slackレーン。
npm-telegram 公開済みパッケージのTelegram E2E。release_package_spec または npm_telegram_package_spec が必要。

1つの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 ハンドルは、その3つのプロバイダーシャードに対する集約再実行ハンドルであるため、 引き続きすべてのadvisory Docker Gatewayジョブにファンアウトします。

1つのクロスOSレーンが失敗した場合は、rerun_group=cross-os とともに cross_os_suite_filter を使います。 フィルターはOS ID、スイートID、またはOS/スイートのペアを受け付けます。 たとえば windows/packaged-upgradewindows、または packaged-fresh です。 クロスOSサマリーには、パッケージ済みアップグレードレーンのフェーズ別タイミングが含まれ、 長時間実行されるコマンドはheartbeat行を出力するため、ジョブタイムアウト前に停止したWindows更新が見えるようになります。

QAリリースチェックの失敗は通常のリリース検証をブロックします。 標準ティアで必要なOpenClaw動的ツールのドリフトも、リリースチェック検証をブロックします。 Tideclaw alpha実行では、パッケージ安全性以外のリリースチェックレーンを引き続きadvisoryとして扱う場合があります。 live_suite_filter がDiscord、WhatsApp、Slackなどのゲート付きQA liveレーンを明示的に要求する場合、 対応する OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED リポジトリ変数を有効にする必要があります。 有効でない場合、レーンを黙ってスキップするのではなく、入力キャプチャが失敗します。 新しいQA証拠が必要な場合は、rerun_group=qaqa-parity、または qa-live を再実行します。

保持する証拠

リリースレベルのインデックスとして Full Release Validation サマリーを保持します。これは子実行IDにリンクし、 最も遅いジョブのテーブルを含みます。失敗時はまず子ワークフローを調査し、その後、上記の最小の一致ハンドルを再実行します。

有用なアーティファクト:

  • OpenClaw Release Checksrelease-package-under-test
  • .artifacts/docker-tests/ 配下のDockerリリースパスアーティファクト
  • パッケージ受け入れの package-under-test とDocker受け入れアーティファクト
  • 各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
Was this useful?
On this page

On this page