run-devicelab-with-led
Run DeviceLab tests for Flutter PRs using LUCI's `led` CLI tool. Use when asked to run, launch, try, or deflake a post-submit or devicelab test against a PR…
npx skills add https://github.com/flutter/flutter --skill run-devicelab-with-ledRunning DeviceLab Tests with led
This skill guides running post-submit and DeviceLab tests for pull requests (PRs) using LUCI's led CLI tool. For additional context, see docs/infra/Running-Devicelab-Tests-For-PR.md.
Prerequisites
ledtool: Must be installed (viadepot_tools) and available in yourPATH. Verify vialed auth-info.- SSO authentication: Verify valid SSO / LOAS credentials via
gcertstatusorglogin status. If expired, instruct the user to rungloginorgcert. recipesrepository (when includingled edit-recipe-bundle): If testing local recipe changes or recipe-only PRs, commands containingled edit-recipe-bundlemust be executed from the root of a local checkout of the Flutterrecipesrepository (git clone https://flutter.googlesource.com/recipes).
Workflow
1. Gather Inputs based on PR Type
Collect the following required arguments:
PR_NUMBER: The pull request number (e.g.,123456).PRESUBMIT_TEST: The exact name of the LUCI staging builder to run (e.g.,Windows_mokey hot_mode_dev_cycle_win__benchmarkorMac_ios microbenchmarks_ios).
2. Execute led Pipeline
If you are using led edit-recipe-bundle to test local recipe modifications, navigate to the root of your local recipes repository checkout ($CWD is packaged by led edit-recipe-bundle). If only testing without recipe edits, led edit-recipe-bundle can either be run from a recipes checkout or omitted.
Run the command pipeline corresponding to the PR type:
Command
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. Report Launched Task Details
led launch outputs details about the launched build, including Swarming / LUCI task links. Provide the resulting URL to the user so they can track execution progress and examine logs.
Example
- User Prompt: "Run the devicelab test
Windows_mokey hot_mode_dev_cycle_win__benchmarkfor framework PR 12345 with led." - Action: Run the
ledcommand (navigate to localrecipes/directory if usingled edit-recipe-bundlefor local recipe edits):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