2626 XCODE_VERSION : " 15.4"
2727 IOS_DEVICE_NAME : iPhone 15
2828 IOS_PLATFORM_VERSION : " 17.5"
29+ FLUTTER_ANDROID_APP : " https://github.com/AppiumTestDistribution/appium-flutter-server/releases/latest/download/app-debug.apk"
2930
3031jobs :
3132 build :
3233
3334 strategy :
3435 matrix :
3536 include :
36- - java : 11
37- # Need to use specific (not `-latest`) version of macOS to be sure the required version of Xcode/simulator is available
38- platform : macos-14
39- e2e-tests : ios
40- - java : 17
41- platform : ubuntu-latest
42- e2e-tests : android
43- - java : 21
44- platform : ubuntu-latest
37+ - java : 11
38+ # Need to use specific (not `-latest`) version of macOS to be sure the required version of Xcode/simulator is available
39+ platform : macos-14
40+ e2e-tests : ios
41+ - java : 17
42+ platform : ubuntu-latest
43+ e2e-tests : android
44+ - java : 17
45+ platform : ubuntu-latest
46+ e2e-tests : flutter-android
47+ - java : 21
48+ platform : ubuntu-latest
4549 fail-fast : false
4650
4751 runs-on : ${{ matrix.platform }}
4852
49- name : JDK ${{ matrix.java }} - ${{ matrix.platform }}
53+ name : JDK ${{ matrix.java }} - ${{ matrix.platform }} ${{ matrix.e2e-tests }}
5054 steps :
5155 - uses : actions/checkout@v4
5256
5357 - name : Enable KVM group perms
54- if : matrix.e2e-tests == 'android'
58+ if : matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android'
5559 run : |
5660 echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
5761 sudo udevadm control --reload-rules
@@ -73,18 +77,23 @@ jobs:
7377 ./gradlew clean build -PisCI -Pselenium.version=$latest_snapshot
7478
7579 - name : Install Node.js
76- if : matrix.e2e-tests == 'android' || matrix.e2e-tests == 'ios'
80+ if : matrix.e2e-tests == 'android' || matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-android'
7781 uses : actions/setup-node@v4
7882 with :
7983 node-version : ' lts/*'
8084
8185 - name : Install Appium
82- if : matrix.e2e-tests == 'android' || matrix.e2e-tests == 'ios'
86+ if : matrix.e2e-tests == 'android' || matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-android'
8387 run : npm install --location=global appium
8488
8589 - name : Install UIA2 driver
86- if : matrix.e2e-tests == 'android'
90+ if : matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android'
8791 run : appium driver install uiautomator2
92+
93+ - name : Install Flutter Integration driver
94+ if : matrix.e2e-tests == 'flutter-android'
95+ run : appium driver install appium-flutter-integration-driver --source npm
96+
8897 - name : Run Android E2E tests
8998 if : matrix.e2e-tests == 'android'
9099 uses : reactivecircus/android-emulator-runner@v2
@@ -96,6 +105,17 @@ jobs:
96105 disable-animations : true
97106 target : ${{ env.ANDROID_EMU_TARGET }}
98107
108+ - name : Run Flutter Android E2E tests
109+ if : matrix.e2e-tests == 'flutter-android'
110+ uses : reactivecircus/android-emulator-runner@v2
111+ with :
112+ script : ./gradlew e2eFlutterTest -Pplatform="android" -Pselenium.version=$latest_snapshot -PisCI -PflutterApp=${{ env.FLUTTER_ANDROID_APP }}
113+ api-level : ${{ env.ANDROID_SDK_VERSION }}
114+ avd-name : ${{ env.ANDROID_EMU_NAME }}
115+ disable-spellchecker : true
116+ disable-animations : true
117+ target : ${{ env.ANDROID_EMU_TARGET }}
118+
99119 - name : Select Xcode
100120 if : matrix.e2e-tests == 'ios'
101121 uses : maxim-lobanov/setup-xcode@v1
0 commit comments