Workaround androidx.test 45 second timeout in ActivityScenario #732
Workflow file for this run
This file contains 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: Presubmit | |
on: [pull_request] | |
concurrency: | |
group: build-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
JDK_VERSION: 17 | |
DISTRIBUTION: 'zulu' | |
jobs: | |
build: | |
name: Build | |
runs-on: ${{ vars.RUNNER }} | |
timeout-minutes: 120 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/actions/wrapper-validation@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: ${{ env.DISTRIBUTION }} | |
java-version: ${{ env.JDK_VERSION }} | |
cache: gradle | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Build stable debug gradle target | |
run: ./gradlew assembleStableDebug --parallel --build-cache | |
- name: Upload build outputs (APKs) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-outputs | |
path: app/build/outputs | |
- name: Upload build reports | |
if: always() | |
continue-on-error: true | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-reports | |
path: "*/build/reports" | |
test: | |
name: Unit Tests | |
runs-on: ${{ vars.RUNNER }} | |
timeout-minutes: 120 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/actions/wrapper-validation@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: ${{ env.DISTRIBUTION }} | |
java-version: ${{ env.JDK_VERSION }} | |
cache: gradle | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
continue-on-error: true | |
- name: Run local tests | |
run: ./gradlew test --parallel --build-cache | |
- name: Upload test reports on failure | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-reports | |
path: "*/build/reports/tests" | |
android-test: | |
name: Instrumentation Tests (${{ matrix.device.name }}) | |
runs-on: ${{ vars.RUNNER }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
device: | |
- { name: pixel2Api28, img: 'system-images;android-28;google_apis;x86' } | |
- { name: pixel8Api34, img: 'system-images;android-34;aosp_atd;x86_64' } | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Enable KVM group perms | |
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: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: ${{ env.DISTRIBUTION }} | |
java-version: ${{ env.JDK_VERSION }} | |
- name: Install Emulator | |
run: | | |
yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --install "${{ matrix.device.img }}" | |
- name: Accept licenses | |
run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --licenses || true | |
- name: Run instrumentation tests | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
arguments: ${{ matrix.device.name }}StableDebugAndroidTest | |
- name: Upload instrumentation test reports and logs on failure | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: instrumentation-test-reports-${{ matrix.device.name }} | |
path: | | |
*/build/reports/androidTests/**/${{ matrix.device.name }} | |
*/build/outputs/androidTest-results/**/${{ matrix.device.name }} | |
spotless: | |
name: Spotless Check | |
runs-on: ${{ vars.RUNNER }} | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Validate Gradle Wrapper | |
uses: gradle/actions/wrapper-validation@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: ${{ env.DISTRIBUTION }} | |
java-version: ${{ env.JDK_VERSION }} | |
cache: gradle | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Spotless Check | |
run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --parallel --build-cache |