22
33on :
44 push :
5- branches : [main]
5+ branches : [ main ]
66 pull_request :
77
88permissions :
@@ -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