Files
pezkuwi-wallet-android/.github/workflows/emulator_smoke_test.yml
T
Satoshi Qazi Muhammed 618c467e0e ci(release): smoke-test the release APK on an emulator, drop the BrowserStack trigger
The release workflow ended by triggering BrowserStack tests in
appium-mobile-tests with a personal token. The token expired on 2026-10-17, so
every release build since is red, and the BrowserStack run behind it had never
produced a result (it fails uploading the app, KeyError 'app_url', since
2026-08-03). Its tests mostly asserted nothing.

In its place, every release build now installs the APK on an x86_64 API 34
emulator on a GitHub-hosted runner, launches it, and fails unless the
first-run welcome screen appears with both its create and restore buttons and
the app has neither crashed nor exited. The screen is matched by view id, so
it holds in any locale. A screenshot, the view tree and logcat are kept as an
artifact. It needs no account and no stored secret, and it can be run by hand
against the APK of an earlier run.
2026-10-18 14:12:39 +04:00

56 lines
1.6 KiB
YAML

name: Emulator smoke test
# Installs the release APK on an Android emulator and checks it starts and
# reaches the welcome screen. Called by the release workflow on every build;
# can be run by hand against the APK of an earlier run.
on:
workflow_call:
workflow_dispatch:
inputs:
run-id:
description: "Run whose 'apk' artifact to test"
required: true
permissions:
contents: read
actions: read
jobs:
smoke-test:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Download built artifact
uses: actions/download-artifact@v4
with:
name: apk
path: app
run-id: ${{ inputs.run-id || github.run_id }}
github-token: ${{ github.token }}
- 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: Launch the app on an emulator
uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d # v2.38.0
with:
api-level: 34
target: google_apis
arch: x86_64
disable-animations: true
script: .github/scripts/smoke-test.sh app/releaseMarket/app-releaseMarket.apk
- name: Upload screen, view tree and logcat
if: always()
uses: actions/upload-artifact@v4
with:
name: smoke-test-output
path: smoke-out/
if-no-files-found: ignore