ci(deps): bump selenium from 4.48.0 to 4.49.0 #781
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: Functional Tests | |
| on: | |
| # Run by manual at this time | |
| workflow_dispatch: | |
| pull_request: | |
| branches: [ master ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| APPIUM_TEST_SERVER_PORT: '4723' | |
| APPIUM_TEST_SERVER_HOST: '127.0.0.1' | |
| PYTHONUNBUFFERED: 1 | |
| UV_LOCKED: 'true' | |
| jobs: | |
| ios_test: | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test_targets: | |
| - target: test/functional/ios/safari_tests.py | |
| name: func_test_ios1 | |
| runs-on: macos-15 | |
| # Please make sure the available Xcode versions and iOS versions | |
| # on the runner images. https://github.com/actions/runner-images | |
| env: | |
| XCODE_VERSION: '16.4' | |
| IOS_VERSION: '18.5' | |
| IPHONE_MODEL: 'iPhone 16 Plus' | |
| PREBUILT_WDA_PATH: ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 'lts/*' | |
| - name: Select Xcode | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: ${{ env.XCODE_VERSION }} | |
| - name: Install Appium and drivers | |
| run: | | |
| npm install -g appium | |
| appium driver install xcuitest | |
| appium driver run xcuitest download-wda-sim --platform=ios --outdir=$(dirname "$PREBUILT_WDA_PATH") | |
| - name: Start Appium server | |
| uses: ./.github/actions/setup-appium-server | |
| with: | |
| port: ${{ env.APPIUM_TEST_SERVER_PORT }} | |
| host: ${{ env.APPIUM_TEST_SERVER_HOST }} | |
| server_args: '--relaxed-security' | |
| - name: Start iOS Simulator UI | |
| run: | | |
| defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false | |
| open -Fn "$(xcode-select --print-path)/Applications/Simulator.app" | |
| - name: Prepare iOS simulator | |
| uses: futureware-tech/simulator-action@v5 | |
| with: | |
| model: ${{ env.IPHONE_MODEL }} | |
| os_version: ${{ env.IOS_VERSION }} | |
| wait_for_boot: true | |
| shutdown_after_job: false | |
| - name: Finalize iOS simulator boot | |
| run: xcrun --sdk iphonesimulator --show-sdk-version | |
| - name: Set up Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: 3.14 | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v10.1.0 | |
| with: | |
| enable-cache: true | |
| python-version: '3.14' | |
| - name: Run Tests | |
| run: | | |
| uv run pytest -v ${{ matrix.test_targets.target}} \ | |
| --doctest-modules \ | |
| --junitxml=junit/test-results.xml \ | |
| --cov=appium \ | |
| --cov-report=xml \ | |
| --cov-report=html | |
| env: | |
| LOCAL_PREBUILT_WDA: ${{ env.PREBUILT_WDA_PATH }} | |
| - name: Save test diagnostics | |
| if: ${{ always() }} | |
| uses: actions/upload-artifact@master | |
| with: | |
| name: appium-ios-${{matrix.test_targets.name}}-diagnostics | |
| path: | | |
| appium.log | |
| junit/ | |
| coverage.xml | |
| htmlcov/ | |
| android_test: | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test_targets: | |
| - target: test/functional/android/appium_service_tests.py test/functional/android/chrome_tests.py test/functional/android/bidi_tests.py | |
| name: func_test_android1 | |
| runs-on: ubuntu-latest | |
| env: | |
| API_LEVEL: 29 | |
| ARCH: x86 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-java@v6.0.1 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Install ffmpeg | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y ffmpeg | |
| - name: Install Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 'lts/*' | |
| - name: Install Appium and drivers | |
| run: | | |
| npm install -g appium | |
| appium driver install uiautomator2 | |
| appium driver install espresso | |
| appium plugin install execute-driver | |
| - name: Start Appium server | |
| uses: ./.github/actions/setup-appium-server | |
| with: | |
| port: ${{ env.APPIUM_TEST_SERVER_PORT }} | |
| host: ${{ env.APPIUM_TEST_SERVER_HOST }} | |
| server_args: '--relaxed-security --use-plugins=execute-driver' | |
| - name: Enable KVM group perms | |
| 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: AVD cache | |
| uses: actions/cache@v6 | |
| id: avd-cache | |
| with: | |
| path: | | |
| ~/.android/avd/* | |
| ~/.android/adb* | |
| key: avd-${{ env.API_LEVEL }} | |
| - name: Create AVD and generate snapshot for caching | |
| if: steps.avd-cache.outputs.cache-hit != 'true' | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: ${{ env.API_LEVEL }} | |
| arch: ${{ env.ARCH }} | |
| target: google_apis | |
| force-avd-creation: false | |
| emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
| disable-animations: false | |
| script: echo "Generated AVD snapshot for caching." | |
| - name: Set up Python 3.14 | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: 3.14 | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v10.1.0 | |
| with: | |
| enable-cache: true | |
| python-version: '3.14' | |
| - name: Run tests | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: ${{ env.API_LEVEL }} | |
| arch: ${{ env.ARCH }} | |
| script: | | |
| uv run pytest -v ${{ matrix.test_targets.target}} --doctest-modules --junitxml=junit/test-results.xml --cov=appium --cov-report=xml --cov-report=html | |
| target: google_apis | |
| profile: Nexus 5X | |
| disable-spellchecker: true | |
| disable-animations: true | |
| env: | |
| ANDROID_SDK_VERSION: ${{ env.API_LEVEL }} | |
| APPIUM_DRIVER: ${{matrix.test_targets.automation_name}} | |
| IGNORE_VERSION_SKIP: true | |
| CI: true | |
| - name: Save test diagnostics | |
| if: ${{ always() }} | |
| uses: actions/upload-artifact@master | |
| with: | |
| name: appium-android-${{matrix.test_targets.name}}-diagnostics | |
| path: | | |
| appium.log | |
| junit/ | |
| coverage.xml | |
| htmlcov/ | |
| flutter_e2e_test: | |
| timeout-minutes: 60 | |
| # These flutter integration driver tests are maintained by: MummanaSubramanya | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - platform: macos-15 | |
| e2e-tests: flutter-ios | |
| - platform: ubuntu-latest | |
| e2e-tests: flutter-android | |
| runs-on: ${{ matrix.platform }} | |
| env: | |
| API_LEVEL: 28 | |
| ARCH: x86 | |
| CI: true | |
| XCODE_VERSION: 16.4 | |
| IOS_VERSION: 18.5 | |
| IPHONE_MODEL: iPhone 16 | |
| FLUTTER_ANDROID_APP: "https://github.com/AppiumTestDistribution/appium-flutter-server/releases/download/0.0.33/app-debug.apk" | |
| FLUTTER_IOS_APP: "https://github.com/AppiumTestDistribution/appium-flutter-server/releases/download/0.0.33/ios.zip" | |
| PREBUILT_WDA_PATH: ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-java@v6.0.1 | |
| if: matrix.e2e-tests == 'flutter-android' | |
| with: | |
| distribution: 'zulu' | |
| java-version: '17' | |
| - name: Enable KVM group perms | |
| if: 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 Python 3.14 | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: 3.14 | |
| - name: Install Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 'lts/*' | |
| - name: Select Xcode | |
| if: matrix.e2e-tests == 'flutter-ios' | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: ${{ env.XCODE_VERSION }} | |
| - name: Install Appium and drivers | |
| if: matrix.e2e-tests == 'flutter-android' | |
| run: | | |
| npm install --location=global appium | |
| appium driver install uiautomator2 | |
| appium driver install appium-flutter-integration-driver --source npm | |
| - name: Install Appium and drivers | |
| if: matrix.e2e-tests == 'flutter-ios' | |
| run: | | |
| npm install --location=global appium | |
| appium driver install xcuitest | |
| appium driver run xcuitest download-wda-sim --platform=ios --outdir=$(dirname "$PREBUILT_WDA_PATH") | |
| appium driver install appium-flutter-integration-driver --source npm | |
| - name: Start Appium server | |
| uses: ./.github/actions/setup-appium-server | |
| with: | |
| port: ${{ env.APPIUM_TEST_SERVER_PORT }} | |
| host: ${{ env.APPIUM_TEST_SERVER_HOST }} | |
| server_args: '--relaxed-security' | |
| log_file: appium-${{ matrix.e2e-tests }}.log | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v10.1.0 | |
| with: | |
| enable-cache: true | |
| python-version: '3.14' | |
| - name: Run Android tests | |
| if: matrix.e2e-tests == 'flutter-android' | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: ${{ env.API_LEVEL }} | |
| script: | | |
| uv run pytest -v test/functional/flutter_integration/*_test.py --doctest-modules --junitxml=junit/test-results.xml --cov=appium --cov-report=xml --cov-report=html | |
| target: default | |
| disable-spellchecker: true | |
| disable-animations: true | |
| - name: Start iOS Simulator UI | |
| if: matrix.e2e-tests == 'flutter-ios' | |
| run: | | |
| defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false | |
| open -Fn "$(xcode-select --print-path)/Applications/Simulator.app" | |
| - uses: futureware-tech/simulator-action@v5 | |
| if: matrix.e2e-tests == 'flutter-ios' | |
| with: | |
| # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md | |
| model: ${{ env.IPHONE_MODEL }} | |
| os_version: ${{ env.IOS_VERSION }} | |
| wait_for_boot: true | |
| shutdown_after_job: false | |
| - name: Finalize iOS simulator boot | |
| if: matrix.e2e-tests == 'flutter-ios' | |
| run: xcrun --sdk iphonesimulator --show-sdk-version | |
| - name: Run IOS tests | |
| if: matrix.e2e-tests == 'flutter-ios' | |
| run: | | |
| export PLATFORM=ios | |
| uv run pytest -v test/functional/flutter_integration/*_test.py \ | |
| --doctest-modules \ | |
| --junitxml=junit/test-results.xml \ | |
| --cov=appium \ | |
| --cov-report=xml \ | |
| --cov-report=html | |
| env: | |
| LOCAL_PREBUILT_WDA: ${{ env.PREBUILT_WDA_PATH }} | |
| - name: Save test diagnostics | |
| if: ${{ always() }} | |
| uses: actions/upload-artifact@master | |
| with: | |
| name: appium-${{ matrix.e2e-tests }}-diagnostics | |
| path: | | |
| appium-${{ matrix.e2e-tests }}.log | |
| junit/ | |
| coverage.xml | |
| htmlcov/ |