[Draft] Remove webdrivermanager
dependency
#1321
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Appium Java Client CI | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- 'docs/**' | |
- '*.md' | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- 'docs/**' | |
- '*.md' | |
env: | |
ANDROID_SDK_VERSION: 28 | |
ANDROID_EMU_NAME: test | |
XCODE_VERSION: 14.2 | |
IOS_DEVICE_NAME: iPhone 12 | |
IOS_PLATFORM_VERSION: 16.2 | |
jobs: | |
build: | |
strategy: | |
matrix: | |
include: | |
# TODO: add new LTS Java ( 21 ) once it's released | |
- java: 8 | |
platform: macos-latest | |
e2e-tests: android | |
- java: 11 | |
# Need to use specific (not `-latest`) version of macOS to be sure the required version of Xcode/simulator is available | |
platform: macos-12 | |
e2e-tests: ios | |
- java: 17 | |
platform: ubuntu-latest | |
fail-fast: false | |
runs-on: ${{ matrix.platform }} | |
name: JDK ${{ matrix.java }} - ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK ${{ matrix.java }} | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ matrix.java }} | |
cache: 'gradle' | |
- name: Build with Gradle | |
run: ./gradlew clean build | |
- name: Install Node.js | |
if: ${{ matrix.e2e-tests == 'android' || matrix.e2e-tests == 'ios' }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 'lts/*' | |
- name: Install Appium | |
if: matrix.e2e-tests == 'android' || matrix.e2e-tests == 'ios' | |
run: npm install -g appium@next | |
- name: Install UIA2 driver | |
if: matrix.e2e-tests == 'android' | |
run: appium driver install uiautomator2 | |
- name: AVD cache | |
if: matrix.e2e-tests == 'android' | |
uses: actions/cache@v3 | |
id: avd-cache | |
with: | |
path: | | |
~/.android/avd/* | |
~/.android/adb* | |
key: avd-${{ env.ANDROID_SDK_VERSION }} | |
- name: Generate AVD snapshot for caching | |
if: matrix.e2e-tests == 'android' && steps.avd-cache.outputs.cache-hit != 'true' | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ env.ANDROID_SDK_VERSION }} | |
avd-name: ${{ env.ANDROID_EMU_NAME }} | |
force-avd-creation: false | |
script: echo "Generated AVD snapshot for caching." | |
- name: Run Android E2E tests | |
if: matrix.e2e-tests == 'android' | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ env.ANDROID_SDK_VERSION }} | |
avd-name: ${{ env.ANDROID_EMU_NAME }} | |
force-avd-creation: false | |
emulator-options: -no-snapshot -delay-adb | |
script: ./gradlew uiAutomationTest | |
- name: Select Xcode | |
if: matrix.e2e-tests == 'ios' | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: "${{ env.XCODE_VERSION }}" | |
- name: Install XCUITest driver | |
if: matrix.e2e-tests == 'ios' | |
run: appium driver install xcuitest | |
- name: Prebuild XCUITest driver | |
if: matrix.e2e-tests == 'ios' | |
run: appium driver run xcuitest build-wda | |
- name: Prepare iOS simulator | |
if: matrix.e2e-tests == 'ios' | |
run: | | |
xcrun simctl list | |
target_sim_id=$(xcrun simctl list devices available | grep "$IOS_DEVICE_NAME (" | cut -d "(" -f2 | cut -d ")" -f1) | |
open -Fn "/Applications/Xcode_$XCODE_VERSION.app/Contents/Developer/Applications/Simulator.app" | |
xcrun simctl bootstatus $target_sim_id -b | |
- name: Run iOS E2E tests | |
if: matrix.e2e-tests == 'ios' | |
run: ./gradlew xcuiTest |