From b69d642c9d20be563f16b69224950f7d1c6b038f Mon Sep 17 00:00:00 2001 From: Russell Martin Date: Wed, 22 May 2024 18:10:40 -0400 Subject: [PATCH] Implement action to setup Android emulator in CI --- .github/workflows/ci.yml | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54ad5ed..b293cc9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,9 +48,9 @@ jobs: python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] include: - runs-on: ubuntu-latest - - pre-command: - - briefcase-target: - - briefcase-run-args: + - pre-command: "" + - briefcase-target: "" + - briefcase-run-args: "" - backend: macOS-Xcode runs-on: macos-latest @@ -92,19 +92,7 @@ jobs: - backend: android runs-on: "ubuntu-latest" briefcase-target: "android" - briefcase-run-args: > - --device '{"avd":"beePhone"}' - --Xemulator=-no-window - --Xemulator=-no-snapshot - --Xemulator=-no-audio - --Xemulator=-no-boot-anim - --shutdown-on-exit - pre-command: | - # allow access to KVM to run the emulator - 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 + exclude: # Binary packages aren't available for 3.11+ on Android yet - backend: "android" @@ -128,11 +116,22 @@ jobs: - name: Install Dependencies run: ${{ matrix.pre-command }} + - name: Setup Android Emulator + id: emulator + if: matrix.backend == 'android' + uses: rmartin16/.github-beeware/.github/actions/setup-android@setup-android + with: + emulator-config: '{"avd":"beePhone"}' + - name: Install Briefcase uses: beeware/.github/.github/actions/install-briefcase@main - name: Test App - run: briefcase run ${{ matrix.briefcase-target }} --test ${{ matrix.briefcase-run-args }} + run: > + briefcase run ${{ matrix.briefcase-target }} + --test + ${{ matrix.briefcase-run-args }} + ${{ steps.emulator.outputs.briefcase-run-args }} - name: Package run: briefcase package ${{ matrix.briefcase-target }} --update --adhoc-sign