Skip to content

ci testing 1

ci testing 1 #12

Workflow file for this run

name: E2E
on:
push:
branches:
- main
- master
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true # auto cancel prev. run
env:
MAESTRO_VERSION: 1.31.0
ANDROID_ARCH: x86_64
jobs:
android-e2e:
name: E2e Tests πŸ§ͺ
runs-on: macos-12 # or buildjet-4vcpu-ubuntu-2204, ubuntu-22.04-4core, macos-12-xl
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v3
- name: Installing Maestro πŸ“₯
run: curl -Ls "https://get.maestro.mobile.dev" | bash # will use `MAESTRO_VERSION` from env
# - name: Validate Gradle Wrapper πŸ“
# uses: gradle/wrapper-validation-action@v1
#
# - name: Copy CI gradle.properties πŸ“‹
# run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
#
# - name: Set up JDK 17 βš™οΈ
# uses: actions/setup-java@v3
# with:
# distribution: 'zulu'
# java-version: 17
#
# - name: Setup Gradle βš™οΈ
# uses: gradle/gradle-build-action@v2
- name: Setup environment βš™οΈ
env:
ENV_VAR_FILE_NAME: debug.properties
run: |
echo 'API_BASE_URL="https://api.staging.crisiscleanup.io"' >> ${{ env.ENV_VAR_FILE_NAME }}
echo 'BASE_URL="http://localhost:8080"' >> ${{ env.ENV_VAR_FILE_NAME }}
echo 'MAPS_API_KEY="${{ secrets.MAPS_API_KEY }}"' >> ${{ env.ENV_VAR_FILE_NAME }}
echo 'DEBUG_EMAIL_ADDRESS="${{ secrets.TEST_APP_EMAIL_PROD }}"' >> ${{ env.ENV_VAR_FILE_NAME }}
echo 'DEBUG_ACCOUNT_PASSWORD="${{ secrets.TEST_APP_PASSWORD_PROD }}"' >> ${{ env.ENV_VAR_FILE_NAME }}
# - name: Build apk for emulator πŸ—οΈ
# run: |
# ./gradlew assembleDebug --no-daemon -PreactNativeArchitectures=${{ env.ANDROID_ARCH }}
#
# echo "Print path to *.apk file"
# find . -type f -name "*.apk"
# - name: Upload build outputs (APKs) πŸ“€
# uses: actions/upload-artifact@v3
# with:
# name: apks
# path: '**/build/outputs/apk/**/*.apk'
- name: Download APK
run: |
echo "Downloading debug app apk..."
curl 'https://s3.amazonaws.com/app.dev.crisiscleanup.io/app-demo-debug.apk' -o ./app/app-demo-debug.apk
- name: Run E2e tests πŸ§ͺ
uses: reactivecircus/android-emulator-runner@v2
env:
# APK_PATH: ./app/build/outputs/apk/demo/debug/app-demo-debug.apk
APK_PATH: ./app/app-demo-debug.apk
MAESTRO_DRIVER_STARTUP_TIMEOUT: 120000
MAESTRO_APP_ID: com.crisiscleanup.demo.debug
MAESTRO_APP_EMAIL: ${{ secrets.TEST_APP_EMAIL_PROD }}
MAESTRO_APP_PASSWORD: ${{ secrets.TEST_APP_PASSWORD_PROD }}
with:
api-level: 33
target: google_apis
arch: ${{ env.ANDROID_ARCH }}
script: |
adb install "${{ env.APK_PATH }}"
$HOME/.maestro/bin/maestro test .maestro/auth-tests --format junit
$HOME/.maestro/bin/maestro test .maestro/work-tests --format junit
- name: Upload test results πŸ“€
if: always()
uses: actions/upload-artifact@v3
with:
name: e2e_android_report
path: |
/Users/runner/.maestro/tests