Skip to content

Commit

Permalink
Add workaround to prevent emulator from getting stuck on CI jobs (#393)
Browse files Browse the repository at this point in the history
* Add workaround to prevent emulator from getting stuck on CI jobs

* Reference script in later step

* Inverse order
  • Loading branch information
vinaygaba authored Jun 12, 2024
1 parent 5498f79 commit 9c3d6fc
Showing 1 changed file with 31 additions and 2 deletions.
33 changes: 31 additions & 2 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,28 @@ jobs:
~/.android/adb*
key: avd-${{ matrix.api-level }}

- name: Prepare script to run
id: script
env:
SCRIPT: |
# Workaround for https://github.com/ReactiveCircus/android-emulator-runner/issues/373
pre_terminate_crashpad() {
# For some reason pgrep/pkill sees only crashpad_handle, not crashpad_handler,
# but it's definitely called ${ANDROID_HOME}/emulator/crashpad_handler.
# Best-effort gracefully terminate all crashpad_handler processes.
pkill --exact --echo --signal SIGTERM crashpad_handle || return
sleep 10
pkill --exact --echo --signal SIGKILL crashpad_handle || return
}
trap pre_terminate_crashpad EXIT
${{ inputs.script }}
run: |
script_file="${RUNNER_TEMP}/reactivecircus-android-emulator-runner-prepared-script.sh"
echo "${SCRIPT}" > "${script_file}"
echo "file=${script_file}" >> "${GITHUB_OUTPUT}"
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
Expand All @@ -108,7 +130,11 @@ jobs:
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew connectedCheck --no-daemon --stacktrace
script: |
adb devices -l
bash --noprofile --norc -eo pipefail "${{ steps.script.outputs.file }}"
./gradlew connectedCheck --no-daemon --stacktrace
- name: Start emulator and run UI Tests w/ KSP
uses: reactivecircus/android-emulator-runner@v2
Expand All @@ -117,7 +143,10 @@ jobs:
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew connectedCheck --no-daemon --stacktrace -PuseKsp=true
script: |
adb devices -l
bash --noprofile --norc -eo pipefail "${{ steps.script.outputs.file }}"
./gradlew connectedCheck --no-daemon --stacktrace -PuseKsp=true
- name: Run Screenshot Tests
uses: reactivecircus/android-emulator-runner@v2
Expand Down

0 comments on commit 9c3d6fc

Please sign in to comment.