2323 ANDROID_SDK_VERSION : " 28"
2424 ANDROID_EMU_NAME : test
2525 ANDROID_EMU_TARGET : default
26- # https://github.com/actions/runner-images/blob/main/images/macos/ macos-14-arm64-Readme.md
27- XCODE_VERSION : " 15 .4"
28- IOS_DEVICE_NAME : iPhone 15
29- IOS_PLATFORM_VERSION : " 17 .5"
26+ # https://github.com/actions/runner-images/blob/main/images/macos ( macos-15 for Xcode 16 / iOS 18.5)
27+ XCODE_VERSION : " 16 .4"
28+ IOS_DEVICE_NAME : iPhone 16
29+ IOS_PLATFORM_VERSION : " 18 .5"
3030 FLUTTER_ANDROID_APP : " https://github.com/AppiumTestDistribution/appium-flutter-server/releases/latest/download/app-debug.apk"
3131 FLUTTER_IOS_APP : " https://github.com/AppiumTestDistribution/appium-flutter-server/releases/latest/download/ios.zip"
3232 PREBUILT_WDA_PATH : ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app
@@ -38,28 +38,56 @@ jobs:
3838 matrix :
3939 include :
4040 - java : 17
41- # Need to use specific (not `-latest`) version of macOS to be sure the required version of Xcode/simulator is available
42- platform : macos-14
41+ platform : macos-15
4342 e2e-tests : ios
43+ selenium : stable
4444 - java : 17
45- # Need to use specific (not `-latest`) version of macOS to be sure the required version of Xcode/simulator is available
46- platform : macos-14
45+ platform : macos-15
46+ e2e-tests : ios
47+ selenium : snapshot
48+ - java : 17
49+ platform : macos-15
4750 e2e-tests : flutter-ios
51+ selenium : stable
52+ - java : 17
53+ platform : macos-15
54+ e2e-tests : flutter-ios
55+ selenium : snapshot
56+ - java : 17
57+ platform : ubuntu-latest
58+ e2e-tests : android
59+ selenium : stable
4860 - java : 17
4961 platform : ubuntu-latest
5062 e2e-tests : android
63+ selenium : snapshot
64+ - java : 17
65+ platform : ubuntu-latest
66+ e2e-tests : flutter-android
67+ selenium : stable
5168 - java : 17
5269 platform : ubuntu-latest
5370 e2e-tests : flutter-android
71+ selenium : snapshot
5472 - java : 21
5573 platform : ubuntu-latest
74+ selenium : stable
75+ - java : 21
76+ platform : ubuntu-latest
77+ selenium : snapshot
5678 - java : 25
5779 platform : ubuntu-latest
80+ selenium : stable
81+ - java : 25
82+ platform : ubuntu-latest
83+ selenium : snapshot
5884 fail-fast : false
5985
6086 runs-on : ${{ matrix.platform }}
6187
62- name : JDK ${{ matrix.java }} - ${{ matrix.platform }} ${{ matrix.e2e-tests }}
88+ continue-on-error : ${{ matrix.selenium == 'snapshot' }}
89+
90+ name : JDK ${{ matrix.java }} - ${{ matrix.platform }} ${{ matrix.e2e-tests || 'build' }} (${{ matrix.selenium }})
6391 steps :
6492 - uses : actions/checkout@v6
6593
@@ -79,16 +107,20 @@ jobs:
79107 - name : Setup Gradle
80108 uses : gradle/actions/setup-gradle@v5
81109
82- - name : Build with Gradle against Selenium nightly build
110+ - name : Resolve Selenium snapshot version
111+ if : matrix.selenium == 'snapshot'
83112 run : |
84113 latest_snapshot=$(curl -sf https://raw.githubusercontent.com/SeleniumHQ/selenium/refs/heads/trunk/java/version.bzl | grep 'SE_VERSION' | sed 's/.*"\(.*\)".*/\1/')
85114 echo ">>> $latest_snapshot"
86115 echo "latest_snapshot=$latest_snapshot" >> "$GITHUB_ENV"
87- ./gradlew clean build -PisCI -Pselenium.version=$latest_snapshot
88116
89- - name : Build with Gradle against stable Selenium version
90- run : |
91- ./gradlew clean build -PisCI
117+ - name : Build with Gradle (stable Selenium)
118+ if : matrix.selenium == 'stable'
119+ run : ./gradlew clean build
120+
121+ - name : Build with Gradle (snapshot Selenium)
122+ if : matrix.selenium == 'snapshot'
123+ run : ./gradlew clean build -Pselenium.version=$latest_snapshot
92124
93125 - name : Install Node.js
94126 if : ${{ matrix.e2e-tests }}
@@ -112,7 +144,12 @@ jobs:
112144 if : matrix.e2e-tests == 'android'
113145 uses : reactivecircus/android-emulator-runner@v2
114146 with :
115- script : ./gradlew e2eAndroidTest -PisCI -Pselenium.version=$latest_snapshot
147+ script : |
148+ if [ "${{ matrix.selenium }}" = "snapshot" ]; then
149+ ./gradlew e2eAndroidTest -Pselenium.version=$latest_snapshot
150+ else
151+ ./gradlew e2eAndroidTest
152+ fi
116153 api-level : ${{ env.ANDROID_SDK_VERSION }}
117154 avd-name : ${{ env.ANDROID_EMU_NAME }}
118155 disable-spellchecker : true
@@ -123,7 +160,12 @@ jobs:
123160 if : matrix.e2e-tests == 'flutter-android'
124161 uses : reactivecircus/android-emulator-runner@v2
125162 with :
126- script : ./gradlew e2eFlutterTest -Pplatform="android" -Pselenium.version=$latest_snapshot -PisCI -PflutterApp=${{ env.FLUTTER_ANDROID_APP }}
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
127169 api-level : ${{ env.ANDROID_SDK_VERSION }}
128170 avd-name : ${{ env.ANDROID_EMU_NAME }}
129171 disable-spellchecker : true
@@ -151,8 +193,18 @@ jobs:
151193 run : appium driver run xcuitest download-wda-sim --platform=ios --outdir=$(dirname "$PREBUILT_WDA_PATH")
152194 - name : Run iOS E2E tests
153195 if : matrix.e2e-tests == 'ios'
154- run : ./gradlew e2eIosTest -PisCI -Pselenium.version=$latest_snapshot
196+ run : |
197+ if [ "${{ matrix.selenium }}" = "snapshot" ]; then
198+ ./gradlew e2eIosTest -Pselenium.version=$latest_snapshot
199+ else
200+ ./gradlew e2eIosTest
201+ fi
155202
156203 - name : Run Flutter iOS E2E tests
157204 if : matrix.e2e-tests == 'flutter-ios'
158- run : ./gradlew e2eFlutterTest -Pplatform="ios" -Pselenium.version=$latest_snapshot -PisCI -PflutterApp=${{ env.FLUTTER_IOS_APP }}
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
0 commit comments