Skip to content

Bump sdkcompat integration test to target SDK 29 (Q) #7292

Bump sdkcompat integration test to target SDK 29 (Q)

Bump sdkcompat integration test to target SDK 29 (Q) #7292

Workflow file for this run

name: Tests
on:
push:
branches: [ master, 'robolectric-*.x', 'google' ]
paths-ignore:
- '**.md'
pull_request:
branches: [ master ]
paths-ignore:
- '**.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
cache-version: v1
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- uses: gradle/actions/setup-gradle@v3
- name: Build
run: |
SKIP_ERRORPRONE=true SKIP_JAVADOC=true \
./gradlew assemble testClasses --parallel --stacktrace --no-watch-fs
unit-tests:
runs-on: ubuntu-22.04
needs: build
strategy:
fail-fast: false
matrix:
api-versions: [ '19,21,34', '22,23,33', '24,25,32', '26,27,28', '29,30,31', ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- uses: gradle/actions/setup-gradle@v3
- name: Run unit tests
run: |
SKIP_ERRORPRONE=true SKIP_JAVADOC=true ./gradlew test \
--info --stacktrace --continue \
--parallel \
--no-watch-fs \
-Drobolectric.enabledSdks=${{ matrix.api-versions }} \
-Drobolectric.alwaysIncludeVariantMarkersInTestName=true \
-Dorg.gradle.workers.max=2 \
-x :integration_tests:nativegraphics:test \
-x :integration_tests:roborazzi:test
- name: Upload Test Results
uses: actions/upload-artifact@v4
if: always()
with:
name: test_results_${{ matrix.api-versions }}
path: '**/build/test-results/**/TEST-*.xml'
instrumentation-tests:
runs-on: ubuntu-22.04
timeout-minutes: 60
needs: build
strategy:
# Allow tests to continue on other devices if they fail on one device.
fail-fast: false
matrix:
api-level: [ 29 ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- uses: gradle/actions/setup-gradle@v3
- 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: Determine emulator target
id: determine-target
run: |
TARGET="google_apis"
if [[ ${{ matrix.api-level }} -ge 34 ]]; then
TARGET="aosp_atd"
fi
echo "TARGET=$TARGET" >> $GITHUB_OUTPUT
- name: AVD cache
uses: actions/cache@v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-ubuntu-${{ matrix.api-level }}-${{ env.cache-version }}
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
target: ${{ steps.determine-target.outputs.TARGET }}
arch: x86_64
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 device tests
# See https://github.com/orgs/community/discussions/27121
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
target: ${{ steps.determine-target.outputs.TARGET }}
arch: x86_64
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 One
script: |
SKIP_ERRORPRONE=true SKIP_JAVADOC=true ./gradlew cAT --info --stacktrace --no-watch-fs -Dorg.gradle.workers.max=2
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.api-level }}-${{ steps.determine-target.outputs.TARGET }}-${{ matrix.shard }}
path: |
**/build/reports/*
**/build/outputs/*/connected/*
publish-to-snapshots:
runs-on: ubuntu-22.04
env:
SONATYPE_LOGIN: ${{ secrets.SONATYPE_LOGIN }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
needs: unit-tests
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- uses: gradle/actions/setup-gradle@v3
- name: Publish
run: |
./gradlew publish --stacktrace --no-watch-fs