mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

This puts the wiki pages owned by the Android team into the docs/platforms/android directory as planned in [flutter.dev/go/migrate-flutter-wiki-spreadsheet](https://docs.google.com/spreadsheets/d/1x65189ZBdNiLRygpUYoU08pwvXD4M-Z157c6pm8deGI/edit?usp=sharing) It also adds the android team labels to the label bot for future PRs. Changes to the content were only updating cross links, or link to refer to the main branch rather than master. Remaining links to the wiki will be updated once all other pages have finished moving, they still work in the meantime. Part of https://github.com/flutter/flutter/issues/145009
59 lines
2.8 KiB
Markdown
59 lines
2.8 KiB
Markdown
## Testing on Emulators in the Devicelab
|
|
While the Devicelab is typically for testing on Devices we have added support so that developers can now test Android changes via the LUCI recipes on an Android Emulator.
|
|
|
|
You can specify a new test via the .ci.yaml file in the repository. This allows the infra framework to run the test automatically with minimal work from the developer.
|
|
|
|
### Adding a Brand New Target
|
|
Adding a new Devicelab Android Emulator test for Android feature changes requires the following steps:
|
|
|
|
Starting with the finished target yaml definition:
|
|
|
|
```
|
|
- name: Linux_android android_defines_test
|
|
recipe: devicelab/devicelab_drone
|
|
presubmit: true
|
|
timeout: 60
|
|
dimensions: {
|
|
kvm: “1”,
|
|
cores: “8”,
|
|
Machine_name: “n1-standard-8”
|
|
}
|
|
properties:
|
|
device_type: “none”
|
|
task_name: android_defines_test
|
|
use_emulator: “true”
|
|
dependencies: >-
|
|
[
|
|
{"dependency": "android_virtual_device", "version": "31"}
|
|
]
|
|
tags: >
|
|
["devicelab", “linux”]
|
|
timeout: 300
|
|
```
|
|
|
|
1. The `name` of the target consists of the platform which can be either `Linux` or `Linux_Android`. It is better to pick `Linux_Android` since it will provide you more of the needed dependencies.
|
|
2. The `recipe` is always `devicelab/devicelab_drone`. This is the recipe that will launch the emulator and drive the test.
|
|
3. `presubmit` can be `true` or `false`. To run the test in any PR that is opened you should set this to `true`. This is the best approach to catch bugs before they are mirrored to google3.
|
|
4. `timeout` is an integer value.
|
|
5. `dimensions` is needed to tell the LUCI framework that we need to run this test on a machine that supports nested virtualization and should be set as shown.
|
|
6. `properties`:
|
|
|
|
a. `device_type` must be set to `none` so that we use a machine without an attached android phone. This will cause problems if not set.
|
|
|
|
b. `task_name` is the name to apply to the task.
|
|
|
|
c. `use_emulator` is the flag to tell the test recipe that we need to create an Emulator for this test.
|
|
|
|
d. `dependencies` can be used to override the `android_virtual_device` api version.
|
|
|
|
e. `tags` should be set to `devicelab` and `linux`
|
|
|
|
f. `timeout` the timeout here is for the time to give the test to run before killing it.
|
|
|
|
### Updating an Existing Target
|
|
If you want to update an existing target you will only need to add the following changes:
|
|
1. add a `dimensions` field as described above.
|
|
2. Set the `device_type: "none"`.
|
|
3. Add `use_emulator: "true"` flag in properties. Note this is not a boolean but must be a string.
|
|
4. Add a dependency for the android emulator version to the properties. If there are no dependencies add it as shown above.
|
|
5. Remove any tags that specify android. These are for benchmark tests and having them in will cause some of the device checks to fail. |