build(deps): Bump org.projectlombok:lombok from 1.18.42 to 1.18.44 #227
Workflow file for this run
This file contains hidden or 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' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CI: true | |
| ANDROID_SDK_VERSION: "28" | |
| ANDROID_EMU_NAME: test | |
| ANDROID_EMU_TARGET: default | |
| # https://github.com/actions/runner-images/blob/main/images/macos (macos-15 for Xcode 16 / iOS 18.5) | |
| XCODE_VERSION: "16.4" | |
| IOS_DEVICE_NAME: iPhone 16 | |
| IOS_PLATFORM_VERSION: "18.5" | |
| FLUTTER_ANDROID_APP: "https://github.com/AppiumTestDistribution/appium-flutter-server/releases/latest/download/app-debug.apk" | |
| FLUTTER_IOS_APP: "https://github.com/AppiumTestDistribution/appium-flutter-server/releases/latest/download/ios.zip" | |
| PREBUILT_WDA_PATH: ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app | |
| jobs: | |
| build: | |
| strategy: | |
| matrix: | |
| include: | |
| - java: 17 | |
| selenium: stable | |
| - java: 21 | |
| selenium: stable | |
| - java: 25 | |
| selenium: stable | |
| - java: 17 | |
| selenium: snapshot | |
| - java: 21 | |
| selenium: snapshot | |
| - java: 25 | |
| selenium: snapshot | |
| fail-fast: false | |
| runs-on: ubuntu-latest | |
| continue-on-error: ${{ matrix.selenium == 'snapshot' }} | |
| name: JDK ${{ matrix.java }} build (${{ matrix.selenium }}) | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up JDK ${{ matrix.java }} | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: ${{ matrix.java }} | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: Resolve Selenium snapshot version | |
| if: matrix.selenium == 'snapshot' | |
| run: | | |
| latest_snapshot=$(curl -sf https://raw.githubusercontent.com/SeleniumHQ/selenium/refs/heads/trunk/java/version.bzl | grep 'SE_VERSION' | sed 's/.*"\(.*\)".*/\1/') | |
| echo ">>> $latest_snapshot" | |
| echo "latest_snapshot=$latest_snapshot" >> "$GITHUB_ENV" | |
| - name: Build with Gradle (stable Selenium) | |
| if: matrix.selenium == 'stable' | |
| run: ./gradlew clean build | |
| - name: Build with Gradle (snapshot Selenium) | |
| if: matrix.selenium == 'snapshot' | |
| run: ./gradlew clean build -Pselenium.version=$latest_snapshot | |
| e2e: | |
| needs: [build] | |
| if: github.event_name == 'pull_request' | |
| strategy: | |
| matrix: | |
| include: | |
| - platform: macos-15 | |
| e2e-tests: ios | |
| - platform: macos-15 | |
| e2e-tests: flutter-ios | |
| - platform: ubuntu-latest | |
| e2e-tests: android | |
| - platform: ubuntu-latest | |
| e2e-tests: flutter-android | |
| fail-fast: false | |
| runs-on: ${{ matrix.platform }} | |
| name: "e2e - ${{ matrix.platform }} ${{ matrix.e2e-tests }}" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Enable KVM group perms | |
| if: matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android' | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: Set up JDK | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: 17 | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: Install Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 'lts/*' | |
| - name: Install Appium | |
| run: npm install --location=global appium | |
| - name: Install UIA2 driver | |
| if: matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android' | |
| run: appium driver install uiautomator2 | |
| - name: Install Flutter Integration driver | |
| if: matrix.e2e-tests == 'flutter-android' || matrix.e2e-tests == 'flutter-ios' | |
| run: appium driver install appium-flutter-integration-driver --source npm | |
| - name: Run Android E2E tests | |
| if: matrix.e2e-tests == 'android' | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| script: ./gradlew e2eAndroidTest | |
| api-level: ${{ env.ANDROID_SDK_VERSION }} | |
| avd-name: ${{ env.ANDROID_EMU_NAME }} | |
| disable-spellchecker: true | |
| disable-animations: true | |
| target: ${{ env.ANDROID_EMU_TARGET }} | |
| - name: Run Flutter Android E2E tests | |
| if: matrix.e2e-tests == 'flutter-android' | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| script: ./gradlew e2eFlutterTest -Pplatform="android" -PflutterApp=${{ env.FLUTTER_ANDROID_APP }} | |
| api-level: ${{ env.ANDROID_SDK_VERSION }} | |
| avd-name: ${{ env.ANDROID_EMU_NAME }} | |
| disable-spellchecker: true | |
| disable-animations: true | |
| target: ${{ env.ANDROID_EMU_TARGET }} | |
| - name: Select Xcode | |
| if: matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios' | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: "${{ env.XCODE_VERSION }}" | |
| - name: Prepare iOS simulator | |
| if: matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios' | |
| uses: futureware-tech/simulator-action@v5 | |
| with: | |
| model: "${{ env.IOS_DEVICE_NAME }}" | |
| os_version: "${{ env.IOS_PLATFORM_VERSION }}" | |
| wait_for_boot: true | |
| shutdown_after_job: false | |
| - name: Install XCUITest driver | |
| if: matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios' | |
| run: appium driver install xcuitest | |
| - name: Download prebuilt WDA | |
| if: matrix.e2e-tests == 'ios' || matrix.e2e-tests == 'flutter-ios' | |
| run: appium driver run xcuitest download-wda-sim --platform=ios --outdir=$(dirname "$PREBUILT_WDA_PATH") | |
| - name: Run iOS E2E tests | |
| if: matrix.e2e-tests == 'ios' | |
| run: ./gradlew e2eIosTest | |
| - name: Run Flutter iOS E2E tests | |
| if: matrix.e2e-tests == 'flutter-ios' | |
| run: ./gradlew e2eFlutterTest -Pplatform="ios" -PflutterApp=${{ env.FLUTTER_IOS_APP }} |