if you suspect changes are needed there. Both of these technologies are highly
to request new machine types to be added. Both of these technologies are highly
specific to the [LUCI](https://github.com/luci) project, which is the successor
specific to the [LUCI](https://github.com/luci) project, which is the successor
to Chromium's infra and the foundation to Flutter's infrastructure.
to Chromium's infra and the foundation to Flutter's infrastructure.
...
@@ -56,23 +54,6 @@ To run `prepare_package.dart` locally:
...
@@ -56,23 +54,6 @@ To run `prepare_package.dart` locally:
- If you're running into `gsutil` permission issues, check with @Hixie to make sure
- If you're running into `gsutil` permission issues, check with @Hixie to make sure
you have the right push permissions.
you have the right push permissions.
### Getting the code
The following will get way more than just recipe code, but it _will_ get the
recipe code:
```bash
mkdir chrome_infra
cd chrome_infra
fetch infra
```
More detailed instructions can be found [here](https://chromium.googlesource.com/infra/infra/+/master/doc/source.md).
Most of the functionality for recipes comes from `recipe_modules`, which are
unfortunately spread to many separate repositories. After checking out the code
search for files named `api.py` or `example.py` under `infra/build`.
### Editing a recipe
### Editing a recipe
Flutter has several recipes depending on the test. The recipes share common
Flutter has several recipes depending on the test. The recipes share common
...
@@ -92,7 +73,7 @@ The typical cycle for editing a recipe is:
...
@@ -92,7 +73,7 @@ The typical cycle for editing a recipe is:
the existing expected output to match the new output. Verify completely new test
the existing expected output to match the new output. Verify completely new test
cases by altering the `GenTests` method of the recipe. The recipe is required
cases by altering the `GenTests` method of the recipe. The recipe is required
to have 100% test coverage.
to have 100% test coverage.
4. Run `led get-builder 'luci.flutter.prod:BUILDER_NAME' | led edit -p 'revision="GIT_HASH"' | led edit-recipe-bundle | led launch`, where `BUILDER_NAME` is the builder name (e.g. `Linux Engine`), and
4. Run `led get-builder 'luci.flutter.staging:BUILDER_NAME' | led edit -p 'revision="GIT_HASH"' | led edit-recipe-bundle | led launch`, where `BUILDER_NAME` is the builder name (e.g. `Linux Engine`), and
`GIT_HASH` is the hash to build (which is important for the engine but not
`GIT_HASH` is the hash to build (which is important for the engine but not
for the framework).
for the framework).
* If `led` fails, ensure that your `depot_tools` checkout is up to date.
* If `led` fails, ensure that your `depot_tools` checkout is up to date.
...
@@ -100,19 +81,6 @@ The typical cycle for editing a recipe is:
...
@@ -100,19 +81,6 @@ The typical cycle for editing a recipe is:
6. Upload the patch (`git commit`, `git cl upload`), and open the outputted URL to the CL.
6. Upload the patch (`git commit`, `git cl upload`), and open the outputted URL to the CL.
7. Use "Find owners" to get reviewers for the CL
7. Use "Find owners" to get reviewers for the CL
### The infra config repository
The [infra](https://flutter.googlesource.com/infra/+/refs/heads/main) repository contains
configuration files for the dashboard, builder groups, scheduling, and
individual builders. Edits to this may require changes other internal Google
repositories - e.g., to change the operating system or number of machines. If
you want to do that, file an [infra ticket](https://github.com/flutter/flutter/wiki/Infra-Ticket-Queue)
with your proposed changes.
Each configuration file in that repository has a link in the top comments to a
schema that describes available properties.
### Android Tools
### Android Tools
The Android SDK and NDK used by Flutter's Chrome infra bots are stored in Google
The Android SDK and NDK used by Flutter's Chrome infra bots are stored in Google