Skip to content

fix: remove temporary alert splitting from May (#799) #69

fix: remove temporary alert splitting from May (#799)

fix: remove temporary alert splitting from May (#799) #69

name: Android staging deploy
on:
push:
branches:
- main
jobs:
pre-commit:
name: Run pre-commit to check formatting and linting
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
for: pre-commit
- uses: actions/setup-python@v5
with:
python-version: '3.12'
# pre-commit/[email protected]
- run: python -m pip install pre-commit
- uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
- name: Run pre-commit
run: pre-commit run --show-diff-on-failure --color=always --all-files
test-android:
name: Test for Android
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
for: android-test
- run: ./gradlew spotlessCheck
- name: shared checks & unit tests
run: ./gradlew shared:check
- uses: actions/upload-artifact@v4
if: failure()
with:
name: android-shared-reports
path: shared/build/reports
- name: android checks & unit tests
run: ./gradlew androidApp:check
- uses: actions/upload-artifact@v4
if: failure()
with:
name: android-android-reports
path: androidApp/build/reports
emulator-test-android:
name: Run Android instrumented tests in emulator
runs-on: mobile_app_runner
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- api-level: 28
target: default
arch: x86
# - api-level: 33
# target: default
# arch: x86_64
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
for: android-test
# full setup including AVD snapshot caching from https://github.com/ReactiveCircus/android-emulator-runner/blob/a3dcdb348bb02349cd939d168a74e31a9094b7f0/README.md
- 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: run tests
uses: reactivecircus/android-emulator-runner@v2
timeout-minutes: 30
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
arch: ${{ matrix.arch }}
force-avd-creation: false
disable-animations: true
script: ./bin/android-instrumented-test-ci.sh
- uses: actions/upload-artifact@v4
if: failure()
with:
name: android-connected-reports-${{ matrix.api-level }}-${{ matrix.target }}-${{ matrix.arch }}
path: androidApp/build/reports
build-android:
name: Build for Android
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
for: android-build
aws-role: ${{ secrets.AWS_ROLE_ARN }}
gcp-provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
gcp-service-account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
- name: Build Android app
env:
FIREBASE_KEY: ${{ secrets.FIREBASE_KEY }}
GOOGLE_APP_ID_ANDROID: ${{ secrets.GOOGLE_APP_ID_ANDROID_STAGING }}
KEYSTORE_FILE: "${{ github.workspace }}/androidApp/upload-keystore.jks"
KEYSTORE_PASSWORD: ${{ env.MOBILE_APP_ANDROID_UPLOAD_KEY_PASSPHRASE }}
KEY_ALIAS: "upload"
KEY_PASSWORD: ${{ env.MOBILE_APP_ANDROID_UPLOAD_KEY_PASSPHRASE }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_DSN_ANDROID: ${{ secrets.SENTRY_DSN_ANDROID }}
SENTRY_ENVIRONMENT: "staging"
run: |
bundle exec fastlane android build flavor:Staging build_type:Release
- uses: actions/upload-artifact@v4
with:
name: android-apk
path: androidApp/build/outputs/apk/staging/release/androidApp-staging-release.apk
- uses: actions/upload-artifact@v4
with:
name: android-aab
path: androidApp/build/outputs/bundle/stagingRelease/androidApp-staging-release.aab
deploy-android:
name: Upload to Google Play
concurrency:
group: deploy-android
cancel-in-progress: false
needs:
- build-android
- test-android
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: android-aab
path: androidApp/build/outputs/bundle/stagingRelease
- uses: ./.github/actions/setup
with:
for: android-deploy
gcp-provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
gcp-service-account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
- name: Upload to Google Play
run: |
bundle exec fastlane android internal flavor:Staging