Skip to content

Use v2 home catalog endpoint across Android clients #60

Use v2 home catalog endpoint across Android clients

Use v2 home catalog endpoint across Android clients #60

Workflow file for this run

name: Android CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
verify:
name: Build, lint and unit tests
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v7
- name: Verify release train and vendored contract
run: ./scripts/verify-release.sh mobile
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 17
- uses: gradle/actions/setup-gradle@v6
- name: Verify, lint and build
run: ./gradlew --dependency-verification=strict :core:model:test :core:remote:test testDebugUnitTest validateDebugScreenshotTest lintDebug :app:assembleDebug :wear:assembleDebug
- name: Check committed Room schema
run: git diff --exit-code -- core/database/schemas
- name: Upload reports on failure
if: failure()
uses: actions/upload-artifact@v7
with:
name: android-reports
path: |
**/build/reports/
**/build/test-results/
if-no-files-found: ignore
retention-days: 7
emulator:
name: API 35 UI and launch smoke test
runs-on: ubuntu-latest
timeout-minutes: 35
steps:
- uses: actions/checkout@v7
- name: Enable KVM group permissions
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
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 17
- uses: gradle/actions/setup-gradle@v6
- name: Run Compose tests on emulator
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 35
target: google_apis
arch: x86_64
profile: pixel_6
disable-animations: true
script: ./gradlew --dependency-verification=strict connectedDebugAndroidTest
tv-emulator:
name: Android TV D-pad launch smoke test
runs-on: ubuntu-latest
timeout-minutes: 35
steps:
- uses: actions/checkout@v7
- name: Enable KVM group permissions
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
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 17
- uses: gradle/actions/setup-gradle@v6
- name: Launch dedicated TV activity and exercise remote input
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 36
target: android-tv
arch: x86_64
profile: tv_1080p
disable-animations: true
script: |
./gradlew --dependency-verification=strict :app:installDebug
adb shell am start -W -n com.lamndt.smartmovie.debug/com.lamndt.smartmovie.TvActivity
adb shell input keyevent KEYCODE_DPAD_LEFT
adb shell input keyevent KEYCODE_DPAD_DOWN
adb shell input keyevent KEYCODE_DPAD_CENTER
adb shell input keyevent KEYCODE_BACK
adb shell dumpsys activity activities | grep -q com.lamndt.smartmovie.TvActivity