ci(test): Add Android APK UI Test #6
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| env: | |
| SENTRY_ALLOW_FAILURE: true | |
| MAESTRO_VERSION: 1.39.0 | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-android: | |
| name: Android | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: 'npm' | |
| cache-dependency-path: package-lock.json | |
| - run: npm ci | |
| - uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'adopt' | |
| - uses: gradle/gradle-build-action@v3 | |
| - working-directory: android | |
| run: ./gradlew :app:assembleRelease | |
| - name: Upload APK | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: empower-plant-react-native-android | |
| path: android/app/build/outputs/apk/release/app-release.apk | |
| retention-days: 60 | |
| build-ios: | |
| name: iOS | |
| runs-on: macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| cache: 'npm' | |
| cache-dependency-path: package-lock.json | |
| - run: npm ci | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '3.3.0' | |
| bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
| - working-directory: ios | |
| run: bundle exec pod install | |
| - name: Run xcodebuild | |
| working-directory: ios | |
| run: | | |
| mkdir -p "DerivedData" | |
| derivedData="$(cd "DerivedData" ; pwd -P)" | |
| set -o pipefail && xcodebuild \ | |
| -workspace sentry_react_native.xcworkspace \ | |
| -configuration "Release" \ | |
| -scheme sentry_react_native \ | |
| -destination 'generic/platform=iOS Simulator' \ | |
| -derivedDataPath "$derivedData" \ | |
| build \ | |
| | tee xcodebuild.log \ | |
| | xcbeautify --quieter --is-ci --disable-colored-output | |
| - name: Upload APP | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: empower-plant-react-native-ios | |
| path: ios/DerivedData/Build/Products/Release-iphonesimulator/sentry_react_native.app | |
| retention-days: 60 | |
| - name: Upload logs | |
| if: ${{ always() }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-ios-logs | |
| path: ios/xcodebuild.log | |
| run-ui-test-android: | |
| name: UI Test Android | |
| needs: build-android | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download APK artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: empower-plant-react-native-android | |
| path: empower-plant-react-native-android.apk | |
| - name: Install Maestro | |
| uses: dniHze/maestro-test-action@bda8a93211c86d0a05b7a4597c5ad134566fbde4 # [email protected] | |
| with: | |
| maestro-version: ${{env.MAESTRO_VERSION}} | |
| - name: Run tests | |
| uses: reactivecircus/android-emulator-runner@f0d1ed2dcad93c7479e8b2f2226c83af54494915 # [email protected] | |
| with: | |
| api-level: 30 | |
| force-avd-creation: false | |
| disable-animations: true | |
| disable-spellchecker: true | |
| target: 'aosp_atd' | |
| channel: canary # Necessary for ATDs | |
| emulator-options: > | |
| -no-window | |
| -no-snapshot-save | |
| -gpu swiftshader_indirect | |
| -noaudio | |
| -no-boot-anim | |
| -camera-back none | |
| -camera-front none | |
| -timezone US/Pacific | |
| script: | | |
| adb install -r -d empower-plant-react-native-android.apk | |
| maestro test \ | |
| maestro \ | |
| --debug-output maestro-logs |