apps-android-commons/.github/workflows/android.yml
Madhur Gupta 36510a4301
Fix Instrumentation Tests (#4832)
* Fix AboutActivity Instrumentation Tests

* Fix WelcomeActivity Instrumentation Tests

* Fix SearchActivity Instrumentation Tests

* Fix SignupTest Instrumentation Tests

* Fix LoginActivityTest Instrumentation Tests

* Fix SettingsActivity Instrumentation Tests

* Fix LoginActivity Instrumentation Tests

* Update loginUser

* Add logoutUser

* Fix logoutUser

* Update github action to use env variables

* Fix github action to use env variables

* Fix github action

* Fix github action

* Fix github action

* Fix github action

* Fix github action

* Fix github action

* Fix github action

* Fix github action

* Fix github action

* Fix github action

* Fix github action

* Remove scroll

* Add wait time

* Fix keyboard issue

* Disable animation

* Enable animation

* Enable animation

* Disable animation

* Fix compile error

* Remove AVD Cache

* Set timezone and dns

* Add AVD cache

* Add API level

* Update API level to 24

* Add sleep timer

* Add scroll

* Remove logout

* Ignore some tests

* update logout

* update logout

* Fix scroll layout problem

* Fix scroll layout problem

* Ignore orientation test

* Update tests

* Update tests

* Update API level to 29

* Change device and API level to 27

* Use AndroidJUnit4

* Change API to 28

* Try with macos

* Use nested scrollview

* Update Profile Activity Test

* Update Profile Activity Test

* Turn off rotation

* Change device

* Remove failing test

* Change API to 24

* Add rotation lock for failing test

* Change API to 24

* Add sleep

* Remove text

* Remove child

* Force rotation on back press

* Force open more sheet

* Change device to pixel 5

* Change device to 13.5inch

* Update tests

* Ignore failing test

* Use linux

* Update tests

* Use repo secrets instead

* Add mainactivity tests

* Remove content description

* Different workflows for PR and branch, PR workflow will need maintainer approval to prevent secrets getting leaked

* Run instrumentation tests only for push and not for PRs

* Fix FileNotFound Exception

* Update MainActivity and Profile tests

* Fix coverage path issue

* Add wait time for map to load

* Open contribution

* Update settings tests

* Update main activity tests

* Fix failing test

* Fix failing test

* Increase login time

* Separate settings test

* Update review tests

* Ignore uploadCancelledAfterLocationPickedTest

* Update MainActivity Tests

* Update UploadCancelledTest

* Update UploadCancelledTest

* Update device

* Fix Init release error

* Fix failing test

* Fix failing test

* Try with long click

* Update UploadCancelledTest.kt

* Fix Leaderboard Test

* Update testContributions

* Set GPS coordinates

* Add zoomControllers to excludes

* Add ExploreActivityTest

* Remove failing condition

* Merge tests

* Remove failing test

* Remove failing test

* Fix failing test

* Fix failing test

* Update AboutActivityTest.kt

* Update jacoco.gradle
2022-04-26 21:09:15 +10:00

104 lines
3.7 KiB
YAML

name: Android CI
on: [push, pull_request]
concurrency:
group: build-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
name: Run tests and generate APK
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2.4.0
- name: Set up JDK
uses: actions/setup-java@v2.5.0
with:
distribution: "temurin"
java-version: 11
- name: Cache packages
id: cache-packages
uses: actions/cache@v2.1.7
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }}
restore-keys: gradle-packages-${{ runner.os }}
- name: Access test login credentials
run: |
echo "TEST_USER_NAME=${{ secrets.TEST_USER_NAME }}" >> local.properties
echo "TEST_USER_PASSWORD=${{ secrets.TEST_USER_PASSWORD }}" >> local.properties
- name: AVD cache
if: github.event_name != 'pull_request'
uses: actions/cache@v2
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-tablet-api-24
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true' && github.event_name != 'pull_request'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 24
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: echo "Generated AVD snapshot for caching."
- name: Run Instrumentation tests
if: github.event_name != 'pull_request'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 24
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
profile: Nexus 10
script: |
adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0
adb emu geo fix 37.422131 -122.084801
./gradlew connectedBetaDebugAndroidTest --stacktrace
- name: Run Unit tests with unified coverage
if: github.event_name != 'pull_request'
run: ./gradlew -Pcoverage testBetaDebugUnitTestUnifiedCoverage --stacktrace
- name: Run Unit tests without unified coverage
if: github.event_name == 'pull_request'
run: ./gradlew -Pcoverage testBetaDebugUnitTestCoverage --stacktrace
- name: Upload Test Report to Codecov
if: github.event_name != 'pull_request'
run: |
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov
./codecov -f "app/build/reports/jacoco/testBetaDebugUnitTestUnifiedCoverage/testBetaDebugUnitTestUnifiedCoverage.xml" -Z
- name: Generate betaDebug APK
run: bash ./gradlew assembleBetaDebug --stacktrace
- name: Upload betaDebug APK
uses: actions/upload-artifact@v2.3.1
with:
name: betaDebugAPK
path: app/build/outputs/apk/beta/debug/app-*.apk
- name: Generate prodDebug APK
run: bash ./gradlew assembleProdDebug --stacktrace
- name: Upload prodDebug APK
uses: actions/upload-artifact@v2.3.1
with:
name: prodDebugAPK
path: app/build/outputs/apk/prod/debug/app-*.apk