Files
pezkuwi-wallet-android/.github/workflows/push_develop.yml
T
SatoshiQaziMuhammed 5a6eb62a1b ci(release): smoke-test the release APK on an emulator, drop the BrowserStack trigger (#25)
* 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.

* ci: run the emulator smoke test on pull requests that change it, against main's latest release APK

* TEMP: nail check, expect red

* Revert "TEMP: nail check, expect red"

This reverts commit 7f804317b4.
2026-10-18 19:23:15 +04:00

78 lines
2.0 KiB
YAML

name: Build and deploy release apk
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
jobs:
build:
uses: pezkuwichain/pezkuwi-wallet-android/.github/workflows/android_build.yml@main
with:
branch: main
gradlew-command: assembleReleaseMarket
keystore-file-name: market_key.jks
secrets: inherit
upload-to-firebase:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Download built artifact
uses: actions/download-artifact@v4
with:
name: apk
path: app
- name: 🗳 Upload to Firebase
uses: ./.github/workflows/upload-to-firebase
with:
appId: ${{ secrets.ANDROID_RELEASE_FIREBASE_APP_ID }}
firebase-token: ${{ secrets.RELEASE_FIREBASE_CREDENTIAL }}
releaseNotes: ${{ github.event.head_commit.message }}
test-groups: dev-team
upload-file: app/releaseMarket/app-releaseMarket.apk
upload-to-s3:
runs-on: ubuntu-latest
needs: build
outputs:
s3_url: ${{ steps.s3_upload.outputs.s3_url }}
env:
S3_BUCKET: s3://pezkuwi-wallet-android-app
S3_REGION: nl-ams
steps:
- uses: actions/checkout@v4
- name: Download built artifact
uses: actions/download-artifact@v4
with:
name: apk
path: app
- name: ⚙️ Upload to S3
id: s3_upload
uses: ./.github/workflows/upload-to-s3
with:
s3_region: ${{ env.S3_REGION }}
s3_access_key: ${{ secrets.SCW_ACCESS_KEY }}
s3_secret_key: ${{ secrets.SCW_SECRET_KEY }}
s3_bucket: ${{ env.S3_BUCKET }}
upload_file: app/releaseMarket/app-releaseMarket.apk
- name: Show S3 URL
run: |
echo "App uploaded to: ${{ steps.s3_upload.outputs.s3_url }}"
smoke-test:
needs: build
permissions:
contents: read
actions: read
uses: ./.github/workflows/emulator_smoke_test.yml