Go Wiki: SlowBots

Goビルドシステムは、「SlowBots」をサポートしています。これは、TryBots(事前提出ビルダ)を構成して、TryBotsが通常実行するビルド構成のセットに追加のビルダを追加する方法です。

通常、TryBotsは高速で弾力的にプロビジョニングされたものだけを実行します。つまり、TryBotsは、Google Cloudで大量の容量があり、必要に応じて多くのVMをスピンアップでき、テスト実行を広くシャード化してTryBotsを5〜10分で完了させることができる、利用可能なポートのテストを実行します。

しかし、時にはそれだけでは不十分です。SlowBotsを使用すると、特定のビルダセットが利用可能になるまで長時間待つことに同意することができます。(特定の構成では物理マシンが1つしかないことが多く、作業のバックログが溜まっていることが多く、そのビルダも遅い場合があります。)

SlowBotsの使用

コミットメッセージの下にある「Choose Tryjobs」をクリックすると、ダイアログが表示されます。

A red box indicating the location of the “Choose Tryjobs” button under the commit message.

ダイアログでは、CLに対して実行したいビルドのチェックボックスをクリックするよう求められます。メインのGoリポジトリへの通常のCLでは、gotip-で始まるビルダが必要になります。下記参照 オプションの詳細については。

An example of the Choose Tryjobs dialog.

実行したいビルドを選択したら、テスト実行をトリガーする方法は2つあります。

An example of how to use Cq-Include-Trybots

レビューアのワークフロー

レビューアとして、コミットメッセージを編集することはできません。レビュー中のCLでSlowBotsを実行する必要がある場合は、次のワークフローをお勧めします。

  1. 「Choose Tryjobs」ダイアログで目的のビルドを選択します。
  2. 「追加」をクリックしてビルドをすぐに開始します。
  3. コミットメッセージに未解決のコメントを追加して、所有者にダイアログから正確なCq-Include-Trybots行をコミットメッセージに追加するよう依頼します。

(2)は、所有者が新しいパッチセットをアップロードするのを待たずに、テスト結果からすぐにフィードバックを提供しますが、(3)は、テストが将来のパッチセットで継続的に実行され、提出がブロックされることを保証します。

注:https://crbug.com/40287467 は、LUCIにおけるこのプロセスの改善をトラッキングして、作業負荷を軽減します。

SlowBotの名前

各ビルドの名前は、それが何をするのかを大まかに示していますが、以下に詳細を説明します。

現在、実際にサポートされているか有効なものよりも多くのビルドの可能性がリストされています。

期待どおりに機能するSlowBotsに関する一般的なガイドラインを以下に示します。

TODO:これらのガイドラインをフィルターとして自動的に適用する。

LUCI以前のSlowBots

現在、Chromiumプロジェクトによって作成された新しいオープンソースCIシステムであるLUCIへの移行中です。上記の指示は、LUCIでSlowBotsを実行する方法について説明していますが、まだすべてのポートがLUCIに移行されているわけではありません。その間、これらのポートは古いインフラストラクチャで引き続き利用できます。以下は、古いインフラストラクチャでSlowBotsを使用する方法に関する手順です。

TRY=ppc64le, freebsd, netbsd-386, ios, linux-arm64-packet

…ここで、TRY=の後の用語は次のいずれかです。

メインのGoリポジトリの場合、TRY=の後の用語は次のようになることもあります。

後でTryBotsを再度実行する場合、現在のパッチセットの最新のTRY=コメントが使用されます。無効にするには、等号の後に空文字列でTRY=を設定します。現在のパッチセットにTRY=コメントがない場合、最新のTRY=コメントが使用されます。

LUCI以前のSlowBotsの落とし穴


このコンテンツは、Go Wikiの一部です。