Skip to content
This repository was archived by the owner on May 26, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 10 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,20 @@ jobs:
test_on_emulator:
needs: compile
if: ${{ !cancelled() }} # even if compile didn't run (because not on main branch)
name: Instrumented tests
name: Instrumented tests (API ${{ matrix.api-level }})
runs-on: ubuntu-latest
strategy:
matrix:
api-level:
# - 24 # Android 7 (minSdk level; not supported by gradle-managed devices)
# - 27 # the lowest supported version by GMD; doesn't work for some reason
- 30 # Android 11 # Android 11 is the latest version where calendar provider doesn't match millisecond occurrences of recurring events
- 32 # Android 12L # Android 12 is the first version where calendar provider matches millisecond occurrences of recurring events
- 35 # Android 15 # use latest SDK that has an AOSP image here
env:
apk-dir: lib/apk
fdroid-packages: "at.techbee.jtx org.dmfs.tasks org.tasks"
API_LEVEL: ${{ matrix.api-level }}
steps:
- uses: gradle/actions/setup-gradle@v6
with:
Expand Down Expand Up @@ -117,11 +126,5 @@ jobs:
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: Cache AVD
uses: actions/cache@v5
with:
path: ~/.config/.android/avd
key: avd-${{ hashFiles('lib/build.gradle.kts') }} # gradle-managed devices are defined there

- name: Run device tests
run: ./gradlew virtualCheck
3 changes: 2 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ org.gradle.caching=true
# Android
android.useAndroidX=true
# Dokka
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled

7 changes: 5 additions & 2 deletions lib/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,11 @@ android {
localDevices {
create("virtual") {
device = "Pixel 3"
apiLevel = 33
systemImageSource = "aosp-atd"
// read API level from environment variable, fallback to Android 15 (35)
apiLevel = System.getenv("API_LEVEL")?.toIntOrNull() ?: 35
// ATD images are available since API level 30
systemImageSource = if (apiLevel > 30) "aosp-atd" else "aosp"
testedAbi = "x86_64"
}
}
}
Expand Down
Loading