Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sync with upstream #4

Closed
wants to merge 71 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
f079aca
Release v2.
ychescale9 Dec 7, 2019
da41ec9
Merge branch 'master' into release/v2
ychescale9 Dec 13, 2019
3f52989
Merge branch 'master' into release/v2
ychescale9 Dec 14, 2019
d27f7ec
Merge branch 'master' into release/v2
ychescale9 Jan 19, 2020
5dd12aa
Merge branch 'master' into release/v2
ychescale9 Jan 31, 2020
bdf1f83
Merge branch 'master' into release/v2
ychescale9 Feb 4, 2020
2754675
Merge branch 'master' into release/v2
ychescale9 Feb 15, 2020
6bb3965
Merge branch 'master' into release/v2
ychescale9 Mar 5, 2020
769ff28
Merge branch 'master' into release/v2
ychescale9 Mar 28, 2020
0159db6
Merge branch 'master' into release/v2
ychescale9 Mar 31, 2020
a3b0e6d
Update node_modules.
ychescale9 Mar 31, 2020
e4eb880
Merge branch 'master' into release/v2
ychescale9 Apr 2, 2020
2f678a7
Merge branch 'master' into release/v2
ychescale9 Apr 11, 2020
4f4106d
Merge branch 'master' into release/v2
ychescale9 May 1, 2020
e93c997
Merge branch 'master' into release/v2
ychescale9 May 29, 2020
b62c970
Merge branch 'master' into release/v2
ychescale9 Jun 12, 2020
4a8a9af
Merge branch 'main' into release/v2
ychescale9 Jun 20, 2020
c56210b
Merge branch 'main' into release/v2
ychescale9 Oct 8, 2020
07b0366
Merge branch 'main' into release/v2
ychescale9 Oct 16, 2020
e08f702
Merge branch 'main' into release/v2
ychescale9 Nov 14, 2020
02cf805
Merge branch 'main' into release/v2
ychescale9 Dec 27, 2020
70e3f6e
Merge branch 'main' into release/v2
ychescale9 Dec 28, 2020
94bd1ed
Merge branch 'main' into release/v2
ychescale9 Jan 5, 2021
08b092e
Merge branch 'main' into release/v2
ychescale9 Jan 13, 2021
d279995
Merge branch 'main' into release/v2
ychescale9 Mar 4, 2021
599839e
Merge branch 'main' into release/v2
ychescale9 May 7, 2021
226f262
Merge branch 'main' into release/v2
ychescale9 May 28, 2021
97449e9
Merge branch 'main' into release/v2
ychescale9 Jun 20, 2021
6e775ef
Merge branch 'main' into release/v2
ychescale9 Jun 25, 2021
ac874f3
Merge branch 'main' into release/v2
ychescale9 Jun 26, 2021
5de26e4
Merge branch 'main' into release/v2
ychescale9 Jul 20, 2021
f71c6d1
Merge branch 'main' into release/v2
ychescale9 Aug 28, 2021
2b2ebf2
Merge branch 'main' into release/v2
ychescale9 Oct 23, 2021
48744f2
Merge branch 'main' into release/v2
ychescale9 Dec 24, 2021
76c2bf6
Merge branch 'main' into release/v2
ychescale9 Feb 17, 2022
e790971
Merge branch 'main' into release/v2
ychescale9 Apr 30, 2022
b390b0e
Merge branch 'main' into release/v2
ychescale9 Jul 12, 2022
d7b53dd
Merge branch 'main' into release/v2
ychescale9 Sep 20, 2022
50986b1
Merge branch 'main' into release/v2
ychescale9 Oct 28, 2022
8e947e5
Support non-integer API level (#317)
yujincheng08 Feb 9, 2023
bdaf049
Add renovate.json (#320)
renovate[bot] Feb 18, 2023
bad4154
Update dependency androidx.appcompat:appcompat to v1.6.1 (#322)
renovate[bot] Feb 18, 2023
743ec40
Add emulator-boot-timeout parameter (#326)
koplyarov Mar 9, 2023
8c71f5e
SDK command-line tools 9.0. (#331)
ychescale9 Mar 18, 2023
a2c97ef
Update `test-fixture` dependencies and workflows (#332)
ychescale9 Mar 18, 2023
acd15a6
Cleanup action description.
ychescale9 Mar 18, 2023
b35b1c6
Prepare for release 2.28.0.
ychescale9 Mar 18, 2023
d94c3fb
Merge branch 'main' into release/v2
ychescale9 Mar 18, 2023
e1bdfef
Update README.md (Who is using…) (#335)
rfc2822 Apr 25, 2023
2cfd145
Fixed emulator download URL (#343)
olegdolgikh Jul 4, 2023
fabc291
Upgrade to latest npm dependencies (#347)
yogurtearl Aug 24, 2023
f72f505
Update test fixture dependencies. (#354)
ychescale9 Dec 6, 2023
5a481d2
Check in updated `*.js` file.
ychescale9 Dec 6, 2023
1036f55
Update npm packages. (#355)
ychescale9 Dec 6, 2023
f9c2835
SDK command-line tools 11.0. (#356)
ychescale9 Dec 6, 2023
677db68
Prepare for release 2.29.0.
ychescale9 Dec 6, 2023
99a4aac
Merge branch 'main' into release/v2
ychescale9 Dec 6, 2023
c479bb6
Promote using ubuntu runner with KVM. (#366)
ychescale9 Jan 19, 2024
1e33853
Add another user: robolectric/robolectric (#352)
utzcoz Jan 20, 2024
e1bd48c
Node 20. (#369)
ychescale9 Jan 25, 2024
426fbd2
Prepare for release 2.30.0.
ychescale9 Jan 25, 2024
eaf4c24
Merge branch 'main' into release/v2
ychescale9 Jan 25, 2024
61a61f9
Run the action on Node 20 (#371)
TWiStErRob Jan 26, 2024
bc2cd2a
Prepare for release 2.30.1.
ychescale9 Jan 26, 2024
6b0df4b
Merge branch 'main' into release/v2
ychescale9 Jan 26, 2024
9d5d623
Migrate to Node 20 on CI via GitHub Actions major upgrades (#372)
TWiStErRob Jan 27, 2024
a0c0e72
Bump Gradle wrapper validation from v1 to v2 to use Node 20 (#374)
TWiStErRob Jan 29, 2024
d8da5b6
Add api level `VanillaIceCream` support (#378)
yujincheng08 Feb 17, 2024
1fef06a
Install platforms for the specified api level (#384)
joshrlesch Mar 27, 2024
3ca18a7
Merge branch 'main' of github.com:ReactiveCircus/android-emulator-run…
RodrigoCMoraes Apr 18, 2024
ad36935
Merge branch 'release/v2' of github.com:ReactiveCircus/android-emulat…
RodrigoCMoraes Apr 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/action-types.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ jobs:
validate-typings:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: krzema12/github-actions-typing@v0
45 changes: 26 additions & 19 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,41 +18,41 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
api-level: [16, 23, 29]
os: [ubuntu-latest]
api-level: [23, 29]
target: [default, google_apis]
arch: [x86]
exclude:
- os: ubuntu-latest
api-level: 23
- os: ubuntu-latest
api-level: 29
- target: google_apis
api-level: 16
- target: google_apis
api-level: 23
- target: google_apis
api-level: 29
include:
- os: macos-latest
- os: ubuntu-latest
api-level: 24
target: playstore
arch: x86
- os: macos-latest
- os: ubuntu-latest
api-level: 30
target: aosp_atd
arch: x86
- os: macos-11
- os: macos-latest
api-level: 31
target: google_apis
arch: x86_64
- os: ubuntu-latest
api-level: 34
target: aosp_atd
arch: x86_64

steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: validate gradle wrapper
uses: gradle/wrapper-validation-action@v1
uses: gradle/wrapper-validation-action@v2

- name: build, test and lint
run: |
Expand All @@ -61,12 +61,12 @@ jobs:
npm run lint
npm test

- name: Java 15
uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 15
- uses: actions/cache@v3
java-version: 21

- uses: actions/cache@v4
id: avd-cache
with:
path: |
Expand All @@ -75,11 +75,18 @@ jobs:
~/.android/debug.keystore
key: avd-${{ matrix.api-level }}-${{ matrix.os }}-${{ matrix.target }}

- uses: gradle/actions/setup-gradle@v3

- name: assemble tests
uses: gradle/gradle-build-action@v2
with:
build-root-directory: test-fixture
arguments: assembleAndroidTest
working-directory: test-fixture
run: ./gradlew assembleAndroidTest

- name: enable KVM for linux runners
if: runner.os == 'Linux'
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: run emulator to generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
Expand Down
26 changes: 15 additions & 11 deletions .github/workflows/manually.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
os:
description: 'OS'
required: true
default: 'macos-latest'
default: 'ubuntu-latest'
api-level:
description: 'API level of the platform and system image'
required: true
Expand Down Expand Up @@ -39,10 +39,10 @@ jobs:

steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: validate gradle wrapper
uses: gradle/wrapper-validation-action@v1
uses: gradle/wrapper-validation-action@v2

- name: build, test and lint
run: |
Expand All @@ -51,17 +51,21 @@ jobs:
npm run lint
npm test

- name: Java 15
uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 15
- uses: actions/cache@v3
java-version: 21

- uses: gradle/actions/setup-gradle@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
gradle-home-cache-cleanup: true

- name: enable KVM for linux runners
if: runner.os == 'Linux'
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: run action
uses: ./
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
__tests__/runner/*

# comment out in distribution branches
node_modules/
# node_modules/

# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
# Logs
Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# Change Log

## v2.30.1

* Run action on Node 20. - [#371](https://github.com/ReactiveCircus/android-emulator-runner/pull/371)

## v2.30.0

* Update to Node 20. - [#369](https://github.com/ReactiveCircus/android-emulator-runner/pull/369)

## v2.29.0

* Fixed emulator download URL. - [#343](https://github.com/ReactiveCircus/android-emulator-runner/pull/343)
* Upgrade to latest npm dependencies. - [#347](https://github.com/ReactiveCircus/android-emulator-runner/pull/347) [#355](https://github.com/ReactiveCircus/android-emulator-runner/pull/355)
* Update SDK command-line tools to `11.0`. - [#356](https://github.com/ReactiveCircus/android-emulator-runner/pull/356)
* Update SDK build tools to `34.0.0`. - [#356](https://github.com/ReactiveCircus/android-emulator-runner/pull/356)

## v2.28.0

* Add `emulator-boot-timeout` to support configuring maximum time waiting for emulator boot. - [#326](https://github.com/ReactiveCircus/android-emulator-runner/pull/326)
* Support non-integer `api-level`. - [#317](https://github.com/ReactiveCircus/android-emulator-runner/pull/317)
* Replace deprecated `ANDROID_SDK_ROOT` with `ANDROID_HOME`. - [304](https://github.com/ReactiveCircus/android-emulator-runner/pull/304)
* Update SDK command-line tools to `9.0`. - [#331](https://github.com/ReactiveCircus/android-emulator-runner/pull/331)
* Update SDK build tools to `33.0.2`. - [#331](https://github.com/ReactiveCircus/android-emulator-runner/pull/331)

## v2.27.0

* Added `pre-emulator-launch-script` to support running script after creating the AVD and before launching the emulator. - [#247](https://github.com/ReactiveCircus/android-emulator-runner/pull/247) @nilsreichardt.
Expand Down
71 changes: 52 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,24 @@
<a href="https://github.com/ReactiveCircus/android-emulator-runner"><img alt="GitHub Actions status" src="https://github.com/ReactiveCircus/android-emulator-runner/workflows/Main%20workflow/badge.svg"></a>
</p>

A GitHub Action for installing, configuring and running hardware-accelerated Android Emulators on macOS virtual machines.
A GitHub Action for installing, configuring and running hardware-accelerated Android Emulators on Linux and macOS virtual machines.

The old ARM-based emulators were slow and are no longer supported by Google. The modern Intel Atom (x86 and x86_64) emulators can be fast, but rely on two forms of hardware acceleration to reach their peak potential: [Graphics Acceleration](https://developer.android.com/studio/run/emulator-acceleration#accel-graphics), e.g. `emulator -gpu host` and [Virtual Machine(VM) Acceleration](https://developer.android.com/studio/run/emulator-acceleration#accel-vm), e.g. `emulator -accel on`. **Note:** GPU and VM Acceleration are two different and non-mutually exclusive forms of Hardware Acceleration.

This presents a challenge when running emulators on CI especially when running emulators within a docker container, because **Nested Virtualization** must be supported by the host VM which isn't the case for most cloud-based CI providers due to infrastructural limits. If you want to learn more about Emulators on CI, here's an article [Yang](https://github.com/ychescale9) wrote: [Running Android Instrumented Tests on CI](https://dev.to/ychescale9/running-android-emulators-on-ci-from-bitrise-io-to-github-actions-3j76).

## Running hardware accelerated emulators on Linux runners

GitHub's [larger Linux runners support running hardware accelerated emulators](https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/) which is [free for public GitHub repos](https://github.blog/2024-01-17-github-hosted-runners-double-the-power-for-open-source/). It is now recommended to use the **Ubuntu** (`ubuntu-latest`) runners which are 2-3 times faster than the **macOS** ones which are also a lot more expensive. Remember to enable KVM in your workflow before running this action:

```
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
```

## A note on VM Acceleration and why we don't need HAXM anymore

According to [this documentation](https://developer.android.com/studio/run/emulator-acceleration#vm-mac), "on Mac OS X v10.10 Yosemite and higher, the Android Emulator uses the built-in [Hypervisor.Framework](https://developer.apple.com/documentation/hypervisor) by default, and falls back to using Intel HAXM if Hypervisor.Framework fails to initialize." This means that **HAXM is only needed to achieve VM Acceleration if this default Hypervisor is not available on macOS machines.**
Expand All @@ -34,10 +46,16 @@ A workflow that uses **android-emulator-runner** to run your instrumented tests
```yml
jobs:
test:
runs-on: macos-latest
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: run tests
uses: reactivecircus/android-emulator-runner@v2
Expand All @@ -51,14 +69,20 @@ We can also leverage GitHub Actions's build matrix to test across multiple confi
```yml
jobs:
test:
runs-on: macos-latest
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [21, 23, 29]
target: [default, google_apis]
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: run tests
uses: reactivecircus/android-emulator-runner@v2
Expand All @@ -75,10 +99,16 @@ If you need specific versions of **NDK** and **CMake** installed:
```yml
jobs:
test:
runs-on: macos-latest
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: run tests
uses: reactivecircus/android-emulator-runner@v2
Expand All @@ -91,27 +121,33 @@ jobs:

We can significantly reduce emulator startup time by setting up AVD snapshot caching:

1. add a `gradle/gradle-build-action@v2` step for caching Gradle, more details see [#229](https://github.com/ReactiveCircus/android-emulator-runner/issues/229)
2. add an `actions/cache@v3` step for caching the `avd`
1. add a `gradle/actions/setup-gradle@v3` step for caching Gradle, more details see [#229](https://github.com/ReactiveCircus/android-emulator-runner/issues/229)
2. add an `actions/cache@v4` step for caching the `avd`
3. add a `reactivecircus/android-emulator-runner@v2` step to generate a clean snapshot - specify `emulator-options` without `no-snapshot`
4. add another `reactivecircus/android-emulator-runner@v2` step to run your tests using existing AVD / snapshot - specify `emulator-options` with `no-snapshot-save`

```yml
jobs:
test:
runs-on: macos-latest
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [21, 23, 29]
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: Gradle cache
uses: gradle/gradle-build-action@v2
uses: gradle/actions/setup-gradle@v3

- name: AVD cache
uses: actions/cache@v3
uses: actions/cache@v4
id: avd-cache
with:
path: |
Expand Down Expand Up @@ -154,6 +190,7 @@ jobs:
| `disk-size` | Optional | N/A | Disk size, or partition size to use for this AVD. Either in bytes or KB, MB or GB, when denoted with K, M or G. - e.g. `2048M` |
| `avd-name` | Optional | `test` | Custom AVD name used for creating the Android Virtual Device. |
| `force-avd-creation` | Optional | `true` | Whether to force create the AVD by overwriting an existing AVD with the same name as `avd-name` - `true` or `false`. |
| `emulator-boot-timeout` | Optional | `600` | Emulator boot timeout in seconds. If it takes longer to boot, the action would fail - e.g. `300` for 5 minutes. |
| `emulator-options` | Optional | See below | Command-line options used when launching the emulator (replacing all default options) - e.g. `-no-window -no-snapshot -camera-back emulated`. |
| `disable-animations` | Optional | `true` | Whether to disable animations - `true` or `false`. |
| `disable-spellchecker` | Optional | `false` | Whether to disable spellchecker - `true` or `false`. |
Expand All @@ -169,12 +206,6 @@ jobs:

Default `emulator-options`: `-no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim`.

## Can I use this action on Github Hosted Linux VMs?

The short answer is yes but on Github-hosted Linux runners it's expected to be a much worse experience (on some newer API levels it might not work at all) than running it on macOS, because of the current lack of hardware acceleration support. You can get it running much faster on self-hosted Linux runners but only if the underlying instances support KVM (which most don't). Things might be better on the newer Larger runners but they are still in Beta. It is possible to use this Action with hardware accelerated Linux VMs hosted by a third-party runner provider.

For a longer answer please refer to [this issue](https://github.com/ReactiveCircus/android-emulator-runner/issues/46).

## Who is using Android Emulator Runner?

These are some of the open-source projects using (or used) **Android Emulator Runner**:
Expand Down Expand Up @@ -209,5 +240,7 @@ These are some of the open-source projects using (or used) **Android Emulator Ru
- [tinylog-org/tinylog](https://github.com/tinylog-org/tinylog/blob/v3.0/.github/workflows/build.yaml)
- [hzi-braunschweig/SORMAS-Project](https://github.com/hzi-braunschweig/SORMAS-Project/blob/development/.github/workflows/sormas_app_ci.yml)
- [ACRA/acra](https://github.com/ACRA/acra/blob/master/.github/workflows/test.yml)
- [bitfireAT/davx5-ose](https://github.com/bitfireAT/davx5-ose/blob/dev-ose/.github/workflows/test-dev.yml)
- [robolectric/robolectric](https://github.com/robolectric/robolectric/blob/master/.github/workflows/tests.yml)

If you are using **Android Emulator Runner** and want your project included in the list, please feel free to open a pull request.
8 changes: 8 additions & 0 deletions __tests__/input-validator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,14 @@ describe('api-level validator tests', () => {
validator.checkApiLevel('29');
};
expect(func2).not.toThrow();
const func3 = () => {
validator.checkApiLevel('UpsideDownCake-ext5');
};
expect(func3).not.toThrow();
const func4 = () => {
validator.checkApiLevel('TiramisuPrivacySandbox');
};
expect(func4).not.toThrow();
});
});

Expand Down
2 changes: 2 additions & 0 deletions action-types.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ inputs:
type: string
force-avd-creation:
type: boolean
emulator-boot-timeout:
type: integer
emulator-options:
type: string
disable-animations:
Expand Down
7 changes: 5 additions & 2 deletions action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: 'Android Emulator Runner'
description: 'Installs, configures and starts an Android Emulator directly on macOS virtual machines.'
description: 'Installs, configures and starts an Android Emulator directly on hardware-accelerated runners.'
author: 'Reactive Circus'
branding:
icon: 'smartphone'
Expand Down Expand Up @@ -33,6 +33,9 @@ inputs:
force-avd-creation:
description: 'whether to force create the AVD by overwriting an existing AVD with the same name as `avd-name` - `true` or `false`'
default: 'true'
emulator-boot-timeout:
description: 'Emulator boot timeout in seconds. If it takes longer to boot, the action would fail - e.g. `300` for 5 minutes'
default: '600'
emulator-options:
description: 'command-line options used when launching the emulator - e.g. `-no-window -no-snapshot -camera-back emulated`'
default: '-no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim'
Expand Down Expand Up @@ -65,5 +68,5 @@ inputs:
pre-emulator-launch-script:
description: 'custom script to run after creating the AVD and before launching the emulator - e.g. `./adjust-emulator-configs.sh`'
runs:
using: 'node16'
using: 'node20'
main: 'lib/main.js'
Loading