run-devicelab-with-led について
LUCI の `led` コマンドラインを使い、Flutter のプルリクエストで submit 後テストや DeviceLab テストを実行するためのスキルです。ビルダーの指定、PR の設定、起動、タスクリンクの報告を案内します。
主な機能
- 01LUCI ビルダーの選択
- 02PR とリポジトリの設定
- 03recipe bundle の編集
- 04ビルド起動とリンクの報告
活用シーン
- 01Flutter PR の DeviceLab テスト実行
- 02ローカル recipe 変更のテスト
- 03起動したビルドの追跡リンク共有
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ flutter/ flutter --skill run-devicelab-with-ledインストール後、Claude Code で/run-devicelab-with-ledを入力して読み込まれたか確認します。
詳細
ledを使用したDeviceLabテストの実行
このスキルでは、LUCIのled CLIツールを使用して、プルリクエスト(PR)の送信後テストとDeviceLabテストを実行する方法を説明します。詳しくはdocs/infra/Running-Devicelab-Tests-For-PR.mdをご覧ください。レシピやボットの変更が不要な場合は、bb addのほうが適している場合があります。詳しくはdocs/infra/Using-bb-and-led.mdをご覧ください。led auth-loginは対話形式のため、自分で実行しないでください。led auth-infoでNot logged in.と表示された場合は、ユーザーに実行を依頼してください。
前提条件
ledツール:インストール済み(depot_tools経由)で、PATHから利用できる必要があります。led auth-infoで確認してください。- SSO認証:
gcertstatusまたはglogin statusで、有効なSSO/LOAS認証情報があることを確認してください。期限切れの場合は、ユーザーにgloginまたはgcertを実行するよう案内してください。 recipesリポジトリ(led edit-recipe-bundleを使用する場合):ローカルのレシピ変更やレシピのみのPRをテストする場合、led edit-recipe-bundleを含むコマンドは、Flutterのrecipesリポジトリのローカルチェックアウトのルートで実行する必要があります(git clone https://flutter.googlesource.com/recipes)。
ワークフロー
1. PRの種類に応じて入力を収集する
次の必須引数を収集します。
PR_NUMBER:プルリクエスト番号(例:123456)。PRESUBMIT_TEST:実行するLUCIステージングビルダーの正確な名前(例:Windows_mokey hot_mode_dev_cycle_win__benchmarkまたはMac_ios microbenchmarks_ios)。
2. ledパイプラインを実行する
ローカルのレシピ変更をテストするためにled edit-recipe-bundleを使用する場合は、ローカルのrecipesリポジトリのチェックアウトのルートに移動してください($CWDはled edit-recipe-bundleによってパッケージ化されます)。レシピを編集せずにテストする場合は、led edit-recipe-bundleをrecipesのチェックアウトから実行することも、省略することもできます。
PRの種類に対応するコマンドパイプラインを実行します。
コマンド
led get-builder 'luci.flutter.staging:PRESUBMIT_TEST' \
| led edit -pa git_ref='refs/pull/PR_NUMBER/head' \
| led edit -pa git_url='https://github.com/flutter/flutter' \
| led edit-recipe-bundle \
| led launch
3. 起動したタスクの詳細を報告する
led launchは、起動したビルドの詳細(Swarming/LUCIタスクへのリンクなど)を出力します。実行の進捗を確認し、ログを調べられるよう、出力されたURLをユーザーに提示してください。
例
- ユーザーのプロンプト:「frameworkのPR 12345で、devicelabテスト
Windows_mokey hot_mode_dev_cycle_win__benchmarkをledで実行してください。」 - アクション:
ledコマンドを実行します(ローカルのレシピ編集にled edit-recipe-bundleを使用する場合は、ローカルのrecipes/ディレクトリに移動してください)。led get-builder 'luci.flutter.staging:Windows_mokey hot_mode_dev_cycle_win__benchmark' \ | led edit -pa git_ref='refs/pull/12345/head' \ | led edit -pa git_url='https://github.com/flutter/flutter' \ | led edit-recipe-bundle \ | led launch