Skip to content

Commit b99e607

Browse files
committed
Use Java 21 and ensure AVD cache in ci.yml
1 parent 16cc7d6 commit b99e607

File tree

1 file changed

+66
-51
lines changed

1 file changed

+66
-51
lines changed

.github/workflows/ci.yml

Lines changed: 66 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: CI
22

33
on:
44
push:
5-
branches: [main]
5+
branches: [ main ]
66
pull_request:
77

88
permissions:
@@ -49,14 +49,14 @@ jobs:
4949
needs: build
5050
strategy:
5151
matrix:
52-
os: [ubuntu-latest, macos-latest, windows-latest]
52+
os: [ ubuntu-latest, macos-latest, windows-latest ]
5353
runs-on: ${{ matrix.os }}
5454
steps:
5555
- uses: actions/checkout@v4
5656
- uses: actions/setup-java@v4
5757
with:
5858
distribution: temurin
59-
java-version: 17
59+
java-version: 21
6060

6161
- uses: actions/cache@v4
6262
with:
@@ -76,51 +76,66 @@ jobs:
7676
run: ./gradlew --no-daemon --console=plain jvmTest
7777

7878
android-tests:
79-
needs: build
80-
runs-on: ubuntu-latest
81-
steps:
82-
- uses: actions/checkout@v4
83-
- uses: actions/setup-java@v4
84-
with:
85-
distribution: temurin
86-
java-version: 17
87-
88-
- name: Gradle cache
89-
uses: gradle/actions/setup-gradle@v4
90-
91-
- uses: actions/cache@v4
92-
with:
93-
path: |
94-
~/.gradle/caches
95-
~/.gradle/wrapper
96-
key: gradle-${{ runner.os }}-${{ hashFiles('**/gradle-wrapper.properties', '**/*.gradle*', '**/gradle.properties') }}
97-
restore-keys: |
98-
gradle-${{ runner.os }}-
99-
100-
- name: Download build artifacts
101-
uses: actions/download-artifact@v4
102-
with:
103-
name: build-outputs
104-
105-
- name: Enable Hardware Acceleration
106-
run: |
107-
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
108-
sudo udevadm control --reload-rules
109-
sudo udevadm trigger --name-match=kvm
110-
111-
- name: AVD cache
112-
uses: actions/cache@v4
113-
id: avd-cache
114-
with:
115-
path: |
116-
~/.android/avd/*
117-
~/.android/adb*
118-
key: avd-25-no-options
119-
120-
- name: Android Tests
121-
uses: reactivecircus/android-emulator-runner@v2
122-
with:
123-
api-level: 23
124-
profile: 'pixel_4'
125-
arch: 'x86_64'
126-
script: ./gradlew connectedAndroidTest
79+
needs: build
80+
runs-on: ubuntu-latest
81+
timeout-minutes: 60
82+
env:
83+
API_LEVEL: 23
84+
ARCH: x86_64
85+
DISK_SIZE: 2048M
86+
strategy:
87+
matrix:
88+
module: [ primitives, theming, platformtheme ]
89+
steps:
90+
- name: Enable Hardware Acceleration
91+
run: |
92+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
93+
sudo udevadm control --reload-rules
94+
sudo udevadm trigger --name-match=kvm
95+
96+
- uses: actions/setup-java@v4
97+
with:
98+
distribution: temurin
99+
java-version: 21
100+
101+
- name: Gradle cache
102+
uses: gradle/actions/setup-gradle@v4
103+
104+
- name: Restore AVD
105+
uses: actions/cache@v4
106+
id: avd-cache
107+
with:
108+
path: |
109+
~/.android/avd/*
110+
~/.android/adb*
111+
key: avd-${{ env.API_LEVEL }}-${{ env.ARCH }}-${{ env.DISK_SIZE }}
112+
113+
- uses: actions/checkout@v4
114+
115+
- name: Download build artifacts
116+
uses: actions/download-artifact@v4
117+
with:
118+
name: build-outputs
119+
120+
- name: Create AVD
121+
if: steps.avd-cache.outputs.cache-hit != 'true'
122+
uses: reactivecircus/android-emulator-runner@v2
123+
with:
124+
api-level: ${{ env.API_LEVEL }}
125+
arch: ${{ env.ARCH }}
126+
disk-size: ${{ env.DISK_SIZE }}
127+
force-avd-creation: false
128+
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
129+
disable-animations: false
130+
script: echo "Generated AVD snapshot for caching."
131+
132+
- name: Android Tests
133+
uses: reactivecircus/android-emulator-runner@v2
134+
with:
135+
api-level: ${{ env.API_LEVEL }}
136+
arch: ${{ env.ARCH }}
137+
disk-size: ${{ env.DISK_SIZE }}
138+
force-avd-creation: false
139+
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
140+
disable-animations: true
141+
script: ./gradlew composeunstyled-${{ matrix.module }}:connectedDebugAndroidTest

0 commit comments

Comments
 (0)