@@ -41,43 +41,31 @@ jobs:
4141 platform : macos-15
4242 e2e-tests : ios
4343 selenium : stable
44- - java : 17
45- platform : macos-15
46- e2e-tests : ios
47- selenium : snapshot
4844 - java : 17
4945 platform : macos-15
5046 e2e-tests : flutter-ios
5147 selenium : stable
52- - java : 17
53- platform : macos-15
54- e2e-tests : flutter-ios
55- selenium : snapshot
5648 - java : 17
5749 platform : ubuntu-latest
5850 e2e-tests : android
5951 selenium : stable
60- - java : 17
61- platform : ubuntu-latest
62- e2e-tests : android
63- selenium : snapshot
6452 - java : 17
6553 platform : ubuntu-latest
6654 e2e-tests : flutter-android
6755 selenium : stable
68- - java : 17
69- platform : ubuntu-latest
70- e2e-tests : flutter-android
71- selenium : snapshot
7256 - java : 21
7357 platform : ubuntu-latest
7458 selenium : stable
75- - java : 21
76- platform : ubuntu-latest
77- selenium : snapshot
7859 - java : 25
7960 platform : ubuntu-latest
8061 selenium : stable
62+ # Snapshot: compile-only (no E2E) to verify compatibility with latest Selenium
63+ - java : 17
64+ platform : ubuntu-latest
65+ selenium : snapshot
66+ - java : 21
67+ platform : ubuntu-latest
68+ selenium : snapshot
8169 - java : 25
8270 platform : ubuntu-latest
8371 selenium : snapshot
9280 - uses : actions/checkout@v6
9381
9482 - name : Enable KVM group perms
95- if : matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android'
83+ if : ( matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android') && matrix.selenium == 'stable '
9684 run : |
9785 echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
9886 sudo udevadm control --reload-rules
@@ -123,88 +111,68 @@ jobs:
123111 run : ./gradlew clean build -Pselenium.version=$latest_snapshot
124112
125113 - name : Install Node.js
126- if : ${{ matrix.e2e-tests }}
114+ if : ${{ matrix.e2e-tests && matrix.selenium == 'stable' }}
127115 uses : actions/setup-node@v6
128116 with :
129117 node-version : ' lts/*'
130118
131119 - name : Install Appium
132- if : ${{ matrix.e2e-tests }}
120+ if : ${{ matrix.e2e-tests && matrix.selenium == 'stable' }}
133121 run : npm install --location=global appium
134122
135123 - name : Install UIA2 driver
136- if : matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android'
124+ if : ( matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android') && matrix.selenium == 'stable '
137125 run : appium driver install uiautomator2
138126
139127 - name : Install Flutter Integration driver
140- if : matrix.e2e-tests == 'flutter-android' || matrix.e2e-tests == 'flutter-ios'
128+ if : ( matrix.e2e-tests == 'flutter-android' || matrix.e2e-tests == 'flutter-ios') && matrix.selenium == 'stable '
141129 run : appium driver install appium-flutter-integration-driver --source npm
142130
143131 - name : Run Android E2E tests
144- if : matrix.e2e-tests == 'android'
132+ if : matrix.e2e-tests == 'android' && matrix.selenium == 'stable'
145133 uses : reactivecircus/android-emulator-runner@v2
146134 with :
147- script : |
148- if [ "${{ matrix.selenium }}" = "snapshot" ]; then
149- ./gradlew e2eAndroidTest -Pselenium.version=$latest_snapshot
150- else
151- ./gradlew e2eAndroidTest
152- fi
135+ script : ./gradlew e2eAndroidTest
153136 api-level : ${{ env.ANDROID_SDK_VERSION }}
154137 avd-name : ${{ env.ANDROID_EMU_NAME }}
155138 disable-spellchecker : true
156139 disable-animations : true
157140 target : ${{ env.ANDROID_EMU_TARGET }}
158141
159142 - name : Run Flutter Android E2E tests
160- if : matrix.e2e-tests == 'flutter-android'
143+ if : matrix.e2e-tests == 'flutter-android' && matrix.selenium == 'stable'
161144 uses : reactivecircus/android-emulator-runner@v2
162145 with :
163- script : |
164- if [ "${{ matrix.selenium }}" = "snapshot" ]; then
165- ./gradlew e2eFlutterTest -Pplatform="android" -Pselenium.version=$latest_snapshot -PflutterApp=${{ env.FLUTTER_ANDROID_APP }}
166- else
167- ./gradlew e2eFlutterTest -Pplatform="android" -PflutterApp=${{ env.FLUTTER_ANDROID_APP }}
168- fi
146+ script : ./gradlew e2eFlutterTest -Pplatform="android" -PflutterApp=${{ env.FLUTTER_ANDROID_APP }}
169147 api-level : ${{ env.ANDROID_SDK_VERSION }}
170148 avd-name : ${{ env.ANDROID_EMU_NAME }}
171149 disable-spellchecker : true
172150 disable-animations : true
173151 target : ${{ env.ANDROID_EMU_TARGET }}
174152
175153 - name : Select Xcode
176- if : matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios'
154+ if : ( matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios') && matrix.selenium == 'stable '
177155 uses : maxim-lobanov/setup-xcode@v1
178156 with :
179157 xcode-version : " ${{ env.XCODE_VERSION }}"
180158 - name : Prepare iOS simulator
181- if : matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios'
159+ if : ( matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios') && matrix.selenium == 'stable '
182160 uses : futureware-tech/simulator-action@v4
183161 with :
184162 model : " ${{ env.IOS_DEVICE_NAME }}"
185163 os_version : " ${{ env.IOS_PLATFORM_VERSION }}"
186164 wait_for_boot : true
187165 shutdown_after_job : false
188166 - name : Install XCUITest driver
189- if : matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios'
167+ if : ( matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios') && matrix.selenium == 'stable '
190168 run : appium driver install xcuitest
191169 - name : Download prebuilt WDA
192- if : matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios'
170+ if : ( matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios') && matrix.selenium == 'stable '
193171 run : appium driver run xcuitest download-wda-sim --platform=ios --outdir=$(dirname "$PREBUILT_WDA_PATH")
194172 - name : Run iOS E2E tests
195- if : matrix.e2e-tests == 'ios'
196- run : |
197- if [ "${{ matrix.selenium }}" = "snapshot" ]; then
198- ./gradlew e2eIosTest -Pselenium.version=$latest_snapshot
199- else
200- ./gradlew e2eIosTest
201- fi
173+ if : matrix.e2e-tests == 'ios' && matrix.selenium == 'stable'
174+ run : ./gradlew e2eIosTest
202175
203176 - name : Run Flutter iOS E2E tests
204- if : matrix.e2e-tests == 'flutter-ios'
205- run : |
206- if [ "${{ matrix.selenium }}" = "snapshot" ]; then
207- ./gradlew e2eFlutterTest -Pplatform="ios" -Pselenium.version=$latest_snapshot -PflutterApp=${{ env.FLUTTER_IOS_APP }}
208- else
209- ./gradlew e2eFlutterTest -Pplatform="ios" -PflutterApp=${{ env.FLUTTER_IOS_APP }}
210- fi
177+ if : matrix.e2e-tests == 'flutter-ios' && matrix.selenium == 'stable'
178+ run : ./gradlew e2eFlutterTest -Pplatform="ios" -PflutterApp=${{ env.FLUTTER_IOS_APP }}
0 commit comments