From ee7a2b7011878ce70b46f52d38db6e762fc6997e Mon Sep 17 00:00:00 2001 From: ychescale9 Date: Mon, 11 Nov 2019 04:30:55 +1100 Subject: [PATCH 1/3] Fix typos in docs. --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 73b312c3e..078bc2927 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,14 @@ The old ARM-based emulators were slow and are no longer supported by Google. The The **masOS** VM provided by **GitHub Actions** has **HAXM** installed so we are able to create a new AVD instance, launch an emulator with hardware acceleration, and run our Android instrumented tests directly on the VM. -This Action automates the process by doing the following: +This action automates the process by doing the following: - Install / update the required **Android SDK** components including `build-tools`, `platform-tools`, `platform` (for the required API level), `emulator` and `system-images` (for the required API level). -- Create a new instance of **AVD** with the required [configurations](#configurations). -- Launch a new Emulator with the required [configurations](#configurations). +- Create a new instance of **AVD** with the provided [configurations](#configurations). +- Launch a new Emulator with the provided [configurations](#configurations). - Wait until the Emulator is booted and ready for use. -- Run a custom script provided by the user of the action - e.g. `./gradlew connectedCheck`. -- Kill the Emulator and the finish the action. +- Run a custom script provided by user once the Emulator is up and running - e.g. `./gradlew connectedCheck`. +- Kill the Emulator and finish the action. ## Usage From 616ba7a3c63e59a407d561352ca44f1e0e738932 Mon Sep 17 00:00:00 2001 From: ychescale9 Date: Sat, 23 Nov 2019 20:57:10 +1100 Subject: [PATCH 2/3] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 078bc2927..07522a90f 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ A GitHub Action for installing, configuring and running Android Emulators on mac The old ARM-based emulators were slow and are no longer supported by Google. The modern Intel Atom (x86 and x86_64) emulators require hardware acceleration (HAXM on Mac & Windows, QEMU on Linux) from the host to run fast. This presents a challenge on CI as to be able to run hardware accelerated emulators within a docker container, **KVM** must be supported by the host VM which isn't the case for cloud-based CI providers due to infrastructural limits. -The **masOS** VM provided by **GitHub Actions** has **HAXM** installed so we are able to create a new AVD instance, launch an emulator with hardware acceleration, and run our Android instrumented tests directly on the VM. +The **masOS** VM provided by **GitHub Actions** has **HAXM** installed so we are able to create a new AVD instance, launch an emulator with hardware acceleration, and run our Android +tests directly on the VM. This action automates the process by doing the following: @@ -23,7 +24,7 @@ This action automates the process by doing the following: Note that this action must be run on a **macOS** VM, e.g. `macOS-latest` or `macOS-10.14`. -A workflow that uses **android-emulator-runner** to run your instrumented on **API 29**: +A workflow that uses **android-emulator-runner** to run your instrumented tests on **API 29**: ``` jobs: From b34584f4b022485a8672c9dcc2397d5598b403f8 Mon Sep 17 00:00:00 2001 From: Yang Chen Date: Sun, 24 Nov 2019 17:47:07 +1100 Subject: [PATCH 3/3] Switch to sh. --- lib/emulator-manager.js | 4 ++-- lib/sdk-installer.js | 4 ++-- src/emulator-manager.ts | 4 ++-- src/sdk-installer.ts | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/emulator-manager.js b/lib/emulator-manager.js index 6ae3305ff..5a7629265 100644 --- a/lib/emulator-manager.js +++ b/lib/emulator-manager.js @@ -31,12 +31,12 @@ function launchEmulator(apiLevel, target, arch, profile, headless, disableAnimat } else { console.log(`Creating AVD without custom profile.`); - yield exec.exec(`bash -c \\"echo no | ${AVD_MANAGER_PATH} create avd --force -n test --abi '${target}/${arch}' --package 'system-images;android-${apiLevel};${target};${arch}'"`); + yield exec.exec(`sh -c \\"echo no | ${AVD_MANAGER_PATH} create avd --force -n test --abi '${target}/${arch}' --package 'system-images;android-${apiLevel};${target};${arch}'"`); } // start emulator console.log('Starting emulator.'); const noWindow = headless ? '-no-window' : ''; - yield exec.exec(`bash -c \\"${process.env.ANDROID_HOME}/emulator/emulator -avd test ${noWindow} -no-snapshot -noaudio -no-boot-anim &"`); + yield exec.exec(`sh -c \\"${process.env.ANDROID_HOME}/emulator/emulator -avd test ${noWindow} -no-snapshot -noaudio -no-boot-anim &"`); // wait for emulator to complete booting yield waitForDevice(); yield exec.exec(`${ADB_PATH} shell input keyevent 82`); diff --git a/lib/sdk-installer.js b/lib/sdk-installer.js index 69aab8781..856b1b6b3 100644 --- a/lib/sdk-installer.js +++ b/lib/sdk-installer.js @@ -25,9 +25,9 @@ function installAndroidSdk(apiLevel, target, arch) { return __awaiter(this, void 0, void 0, function* () { const sdkmangerPath = `${process.env.ANDROID_HOME}/tools/bin/sdkmanager`; console.log('Installing latest build tools, platform tools, platform, and emulator.'); - yield exec.exec(`bash -c \\"${sdkmangerPath} --install 'build-tools;${BUILD_TOOLS_VERSION}' platform-tools 'platforms;android-${apiLevel}' emulator > /dev/null"`); + yield exec.exec(`sh -c \\"${sdkmangerPath} --install 'build-tools;${BUILD_TOOLS_VERSION}' platform-tools 'platforms;android-${apiLevel}' emulator > /dev/null"`); console.log('Installing system images.'); - yield exec.exec(`bash -c \\"${sdkmangerPath} --install 'system-images;android-${apiLevel};${target};${arch}' > /dev/null"`); + yield exec.exec(`sh -c \\"${sdkmangerPath} --install 'system-images;android-${apiLevel};${target};${arch}' > /dev/null"`); }); } exports.installAndroidSdk = installAndroidSdk; diff --git a/src/emulator-manager.ts b/src/emulator-manager.ts index 2ea9f5a51..3d018646f 100644 --- a/src/emulator-manager.ts +++ b/src/emulator-manager.ts @@ -14,13 +14,13 @@ export async function launchEmulator(apiLevel: number, target: string, arch: str await exec.exec(`${AVD_MANAGER_PATH} create avd --force -n test --abi "${target}/${arch}" --package "system-images;android-${apiLevel};${target};${arch}" --device "${profile}"`); } else { console.log(`Creating AVD without custom profile.`); - await exec.exec(`bash -c \\"echo no | ${AVD_MANAGER_PATH} create avd --force -n test --abi '${target}/${arch}' --package 'system-images;android-${apiLevel};${target};${arch}'"`); + await exec.exec(`sh -c \\"echo no | ${AVD_MANAGER_PATH} create avd --force -n test --abi '${target}/${arch}' --package 'system-images;android-${apiLevel};${target};${arch}'"`); } // start emulator console.log('Starting emulator.'); const noWindow = headless ? '-no-window' : ''; - await exec.exec(`bash -c \\"${process.env.ANDROID_HOME}/emulator/emulator -avd test ${noWindow} -no-snapshot -noaudio -no-boot-anim &"`); + await exec.exec(`sh -c \\"${process.env.ANDROID_HOME}/emulator/emulator -avd test ${noWindow} -no-snapshot -noaudio -no-boot-anim &"`); // wait for emulator to complete booting await waitForDevice(); diff --git a/src/sdk-installer.ts b/src/sdk-installer.ts index 0b2f1c436..7a94d2b46 100644 --- a/src/sdk-installer.ts +++ b/src/sdk-installer.ts @@ -9,7 +9,7 @@ const BUILD_TOOLS_VERSION = '29.0.2'; export async function installAndroidSdk(apiLevel: number, target: string, arch: string): Promise { const sdkmangerPath = `${process.env.ANDROID_HOME}/tools/bin/sdkmanager`; console.log('Installing latest build tools, platform tools, platform, and emulator.'); - await exec.exec(`bash -c \\"${sdkmangerPath} --install 'build-tools;${BUILD_TOOLS_VERSION}' platform-tools 'platforms;android-${apiLevel}' emulator > /dev/null"`); + await exec.exec(`sh -c \\"${sdkmangerPath} --install 'build-tools;${BUILD_TOOLS_VERSION}' platform-tools 'platforms;android-${apiLevel}' emulator > /dev/null"`); console.log('Installing system images.'); - await exec.exec(`bash -c \\"${sdkmangerPath} --install 'system-images;android-${apiLevel};${target};${arch}' > /dev/null"`); + await exec.exec(`sh -c \\"${sdkmangerPath} --install 'system-images;android-${apiLevel};${target};${arch}' > /dev/null"`); }