From 7cacd818ef0dc5a36ef2a3a4cc9c203df003b6e7 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sat, 10 May 2025 08:43:38 -0700 Subject: [PATCH 01/27] use appium3 branch on mykola --- .github/workflows/functional-test.yml | 272 ++++++++++++++------------ 1 file changed, 143 insertions(+), 129 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index d7fcf0c9..cf57d580 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -63,9 +63,16 @@ jobs: os_version: ${{ env.IOS_VERSION }} # Start Appium - - run: npm install -g appium + - run: npm install -g appium@beta - run: | - appium driver install xcuitest + # git clone https://github.com/mykola-mokhnach/appium-espresso-driver.git + git clone https://github.com/mykola-mokhnach/appium-xcuitest-driver.git + cd appium-xcuitest-driver + git checkout appium3 + npm install + npm link + cd .. + appium driver install --source=local $(pwd)/appium-xcuitest-driver appium plugin install images appium plugin install execute-driver nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & @@ -125,13 +132,20 @@ jobs: # Start Appium - name: Install appium and mjpeg-consumer run: | - npm install -g appium + npm install -g appium@beta npm install -g mjpeg-consumer - run: | - appium driver install xcuitest - appium plugin install images@2.1.8 + # git clone https://github.com/mykola-mokhnach/appium-espresso-driver.git + git clone https://github.com/mykola-mokhnach/appium-xcuitest-driver.git + cd appium-xcuitest-driver + git checkout appium3 + npm install + npm link + cd .. + appium driver install --source=local $(pwd)/appium-xcuitest-driver + appium plugin install images appium plugin install execute-driver - nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & + nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - name: Set up Ruby uses: ruby/setup-ruby@v1 @@ -155,126 +169,126 @@ jobs: appium.log test/report/ - android_test: - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - test_targets: - - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - automation_name: uiautomator2 - name: test1 - - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - automation_name: espresso - name: test2 - - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - automation_name: uiautomator2 - name: test3 - - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - automation_name: espresso - name: test4 - - target: test/functional/android/android/mobile_commands_test.rb - automation_name: uiautomator2 - name: test5 - - target: test/functional/android/android/mobile_commands_test.rb - automation_name: espresso - name: test6 - - target: test/functional/android/android/device_data_test.rb - automation_name: uiautomator2 - name: test7 - - target: test/functional/android/android/device_data_test.rb - automation_name: espresso - name: test8 - - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - automation_name: uiautomator2 - name: test9 - - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - automation_name: espresso - name: test10 - - env: - API_LEVEL: 34 - ARCH: x86_64 - - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: '17' - - - name: Install Node.js - uses: actions/setup-node@v3 - with: - node-version: 'lts/*' - - # Start Appium - - run: npm install -g appium - - run: | - appium driver install ${{matrix.test_targets.automation_name}} - appium plugin install images - appium plugin install execute-driver - nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - - - 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@v3 - 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 Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.2 - - name: Install dependencies - run: bundle install - - # Run tests - - - name: run tests - uses: reactivecircus/android-emulator-runner@v2 - with: - api-level: ${{ env.API_LEVEL }} - arch: ${{ env.ARCH }} - script: | - bundle exec rake test:func:android TESTS=${{matrix.test_targets.target}} - 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 server output - if: ${{ always() }} - uses: actions/upload-artifact@master - with: - name: appium-android-${{matrix.test_targets.automation_name}}-${{matrix.test_targets.name}}.log - path: | - appium.log - test/report/ + # android_test: + # runs-on: ubuntu-latest + + # strategy: + # fail-fast: false + # matrix: + # test_targets: + # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + # automation_name: uiautomator2 + # name: test1 + # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + # automation_name: espresso + # name: test2 + # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + # automation_name: uiautomator2 + # name: test3 + # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + # automation_name: espresso + # name: test4 + # - target: test/functional/android/android/mobile_commands_test.rb + # automation_name: uiautomator2 + # name: test5 + # - target: test/functional/android/android/mobile_commands_test.rb + # automation_name: espresso + # name: test6 + # - target: test/functional/android/android/device_data_test.rb + # automation_name: uiautomator2 + # name: test7 + # - target: test/functional/android/android/device_data_test.rb + # automation_name: espresso + # name: test8 + # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + # automation_name: uiautomator2 + # name: test9 + # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + # automation_name: espresso + # name: test10 + + # env: + # API_LEVEL: 34 + # ARCH: x86_64 + + # steps: + # - uses: actions/checkout@v3 + + # - uses: actions/setup-java@v3 + # with: + # distribution: 'temurin' + # java-version: '17' + + # - name: Install Node.js + # uses: actions/setup-node@v3 + # with: + # node-version: 'lts/*' + + # # Start Appium + # - run: npm install -g appium + # - run: | + # appium driver install ${{matrix.test_targets.automation_name}} + # appium plugin install images + # appium plugin install execute-driver + # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & + + # - 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@v3 + # 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 Ruby + # uses: ruby/setup-ruby@v1 + # with: + # ruby-version: 3.2 + # - name: Install dependencies + # run: bundle install + + # # Run tests + + # - name: run tests + # uses: reactivecircus/android-emulator-runner@v2 + # with: + # api-level: ${{ env.API_LEVEL }} + # arch: ${{ env.ARCH }} + # script: | + # bundle exec rake test:func:android TESTS=${{matrix.test_targets.target}} + # 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 server output + # if: ${{ always() }} + # uses: actions/upload-artifact@master + # with: + # name: appium-android-${{matrix.test_targets.automation_name}}-${{matrix.test_targets.name}}.log + # path: | + # appium.log + # test/report/ From 0cd1f09153ed4d886bdaa489bb10f7968b073810 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sat, 10 May 2025 08:43:53 -0700 Subject: [PATCH 02/27] remove --- .github/workflows/functional-test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index cf57d580..28a35427 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -65,7 +65,6 @@ jobs: # Start Appium - run: npm install -g appium@beta - run: | - # git clone https://github.com/mykola-mokhnach/appium-espresso-driver.git git clone https://github.com/mykola-mokhnach/appium-xcuitest-driver.git cd appium-xcuitest-driver git checkout appium3 @@ -135,7 +134,6 @@ jobs: npm install -g appium@beta npm install -g mjpeg-consumer - run: | - # git clone https://github.com/mykola-mokhnach/appium-espresso-driver.git git clone https://github.com/mykola-mokhnach/appium-xcuitest-driver.git cd appium-xcuitest-driver git checkout appium3 From c3beae8d5c1503f933b44ff5d4deaa8bd954ad3a Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sat, 10 May 2025 08:56:41 -0700 Subject: [PATCH 03/27] disable images/execute-driver --- .github/workflows/functional-test.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 28a35427..9c42b9e2 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -72,9 +72,10 @@ jobs: npm link cd .. appium driver install --source=local $(pwd)/appium-xcuitest-driver - appium plugin install images - appium plugin install execute-driver - nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + # appium plugin install images + # appium plugin install execute-driver + # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - name: Set up Ruby uses: ruby/setup-ruby@v1 @@ -141,9 +142,10 @@ jobs: npm link cd .. appium driver install --source=local $(pwd)/appium-xcuitest-driver - appium plugin install images - appium plugin install execute-driver - nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + # appium plugin install images + # appium plugin install execute-driver + # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - name: Set up Ruby uses: ruby/setup-ruby@v1 From dad77a35b5ccebefa7534060c5df56170f775869 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Wed, 14 May 2025 00:01:37 -0700 Subject: [PATCH 04/27] enable uia2 --- .github/workflows/functional-test.yml | 253 +++++++++++++------------- 1 file changed, 130 insertions(+), 123 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 9c42b9e2..fa631c81 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -169,126 +169,133 @@ jobs: appium.log test/report/ - # android_test: - # runs-on: ubuntu-latest - - # strategy: - # fail-fast: false - # matrix: - # test_targets: - # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - # automation_name: uiautomator2 - # name: test1 - # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - # automation_name: espresso - # name: test2 - # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - # automation_name: uiautomator2 - # name: test3 - # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - # automation_name: espresso - # name: test4 - # - target: test/functional/android/android/mobile_commands_test.rb - # automation_name: uiautomator2 - # name: test5 - # - target: test/functional/android/android/mobile_commands_test.rb - # automation_name: espresso - # name: test6 - # - target: test/functional/android/android/device_data_test.rb - # automation_name: uiautomator2 - # name: test7 - # - target: test/functional/android/android/device_data_test.rb - # automation_name: espresso - # name: test8 - # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - # automation_name: uiautomator2 - # name: test9 - # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - # automation_name: espresso - # name: test10 - - # env: - # API_LEVEL: 34 - # ARCH: x86_64 - - # steps: - # - uses: actions/checkout@v3 - - # - uses: actions/setup-java@v3 - # with: - # distribution: 'temurin' - # java-version: '17' - - # - name: Install Node.js - # uses: actions/setup-node@v3 - # with: - # node-version: 'lts/*' - - # # Start Appium - # - run: npm install -g appium - # - run: | - # appium driver install ${{matrix.test_targets.automation_name}} - # appium plugin install images - # appium plugin install execute-driver - # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - - # - 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@v3 - # 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 Ruby - # uses: ruby/setup-ruby@v1 - # with: - # ruby-version: 3.2 - # - name: Install dependencies - # run: bundle install - - # # Run tests - - # - name: run tests - # uses: reactivecircus/android-emulator-runner@v2 - # with: - # api-level: ${{ env.API_LEVEL }} - # arch: ${{ env.ARCH }} - # script: | - # bundle exec rake test:func:android TESTS=${{matrix.test_targets.target}} - # 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 server output - # if: ${{ always() }} - # uses: actions/upload-artifact@master - # with: - # name: appium-android-${{matrix.test_targets.automation_name}}-${{matrix.test_targets.name}}.log - # path: | - # appium.log - # test/report/ + android_test: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + test_targets: + - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + automation_name: uiautomator2 + name: test1 + # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + # automation_name: espresso + # name: test2 + - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + automation_name: uiautomator2 + name: test3 + # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + # automation_name: espresso + # name: test4 + - target: test/functional/android/android/mobile_commands_test.rb + automation_name: uiautomator2 + name: test5 + # - target: test/functional/android/android/mobile_commands_test.rb + # automation_name: espresso + # name: test6 + - target: test/functional/android/android/device_data_test.rb + automation_name: uiautomator2 + name: test7 + # - target: test/functional/android/android/device_data_test.rb + # automation_name: espresso + # name: test8 + - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + automation_name: uiautomator2 + name: test9 + # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + # automation_name: espresso + # name: test10 + + env: + API_LEVEL: 34 + ARCH: x86_64 + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 'lts/*' + + # Start Appium + - run: npm install -g appium@beta + - run: | + git clone https://github.com/mykola-mokhnach/appium-uiautomator2-driver.git + cd appium-uiautomator2-driver + git checkout appium3 + npm install + npm link + cd .. + appium driver install --source=local $(pwd)/appium-uiautomator2-driver + # appium plugin install images + # appium plugin install execute-driver + # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & + nohup appium --relaxed-security --log-timestamp --log-no-colors > appium.log & + + - 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@v3 + 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 Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2 + - name: Install dependencies + run: bundle install + + # Run tests + + - name: run tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: ${{ env.API_LEVEL }} + arch: ${{ env.ARCH }} + script: | + bundle exec rake test:func:android TESTS=${{matrix.test_targets.target}} + 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 server output + if: ${{ always() }} + uses: actions/upload-artifact@master + with: + name: appium-android-${{matrix.test_targets.automation_name}}-${{matrix.test_targets.name}}.log + path: | + appium.log + test/report/ From 4929527739ed22137a841174e8fc6b9d54308a6c Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sat, 17 May 2025 05:22:47 +0900 Subject: [PATCH 05/27] use main repo branches --- .github/workflows/functional-test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index fa631c81..bad4ed8a 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -65,7 +65,7 @@ jobs: # Start Appium - run: npm install -g appium@beta - run: | - git clone https://github.com/mykola-mokhnach/appium-xcuitest-driver.git + git clone https://github.com/appium/appium-xcuitest-driver.git cd appium-xcuitest-driver git checkout appium3 npm install @@ -135,7 +135,7 @@ jobs: npm install -g appium@beta npm install -g mjpeg-consumer - run: | - git clone https://github.com/mykola-mokhnach/appium-xcuitest-driver.git + git clone https://github.com/appium/appium-xcuitest-driver.git cd appium-xcuitest-driver git checkout appium3 npm install @@ -227,7 +227,7 @@ jobs: # Start Appium - run: npm install -g appium@beta - run: | - git clone https://github.com/mykola-mokhnach/appium-uiautomator2-driver.git + git clone https://github.com/appium/appium-uiautomator2-driver.git cd appium-uiautomator2-driver git checkout appium3 npm install From 3894bad59f107dc1571aeab60a2bf8a46cc25d1c Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sat, 17 May 2025 08:38:35 +0900 Subject: [PATCH 06/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index bad4ed8a..0e009e50 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -65,13 +65,7 @@ jobs: # Start Appium - run: npm install -g appium@beta - run: | - git clone https://github.com/appium/appium-xcuitest-driver.git - cd appium-xcuitest-driver - git checkout appium3 - npm install - npm link - cd .. - appium driver install --source=local $(pwd)/appium-xcuitest-driver + appium driver install xcuitest@beta # appium plugin install images # appium plugin install execute-driver # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & @@ -135,13 +129,7 @@ jobs: npm install -g appium@beta npm install -g mjpeg-consumer - run: | - git clone https://github.com/appium/appium-xcuitest-driver.git - cd appium-xcuitest-driver - git checkout appium3 - npm install - npm link - cd .. - appium driver install --source=local $(pwd)/appium-xcuitest-driver + appium driver install xcuitest@beta # appium plugin install images # appium plugin install execute-driver # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & @@ -227,13 +215,7 @@ jobs: # Start Appium - run: npm install -g appium@beta - run: | - git clone https://github.com/appium/appium-uiautomator2-driver.git - cd appium-uiautomator2-driver - git checkout appium3 - npm install - npm link - cd .. - appium driver install --source=local $(pwd)/appium-uiautomator2-driver + appium driver install uiautomator2@beta # appium plugin install images # appium plugin install execute-driver # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & From 240023c9de9c8e6945f723668a5caae5ab062e00 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sat, 17 May 2025 09:03:42 +0900 Subject: [PATCH 07/27] use .apk --- test/test_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 3833258a..9bc96bae 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -275,7 +275,7 @@ def android(activity_name = nil) capabilities: { # :caps is also available platformName: :android, automationName: ENV['APPIUM_DRIVER'] || 'uiautomator2', - app: 'test/functional/app/api.apk.zip', + app: 'test/functional/app/api.apk', udid: udid_name, deviceName: 'Android Emulator', appPackage: 'io.appium.android.apis', @@ -433,7 +433,7 @@ def android_mock_create_session_w3c capabilities: { platformName: :android, automationName: ENV['APPIUM_DRIVER'] || 'uiautomator2', - app: 'test/functional/app/api.apk.zip', + app: 'test/functional/app/api.apk', platformVersion: '7.1.1', deviceName: 'Android Emulator', appPackage: 'io.appium.android.apis', From db49b69ad7d0c6506cc7812b000928fd64179751 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Fri, 15 Aug 2025 17:11:31 +0900 Subject: [PATCH 08/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 246a63a2..3e47aab9 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -77,7 +77,7 @@ jobs: os_version: ${{ env.IOS_VERSION }} # Start Appium - - run: npm install -g appium@beta + - run: npm install -g appium@rc - run: | appium driver install xcuitest@beta # appium plugin install images From 6b9cbef641e779aba95dd673d78443e4f92b6a9c Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 09:12:26 +0900 Subject: [PATCH 09/27] use rc --- .github/workflows/functional-test.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 3e47aab9..155440b0 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -155,11 +155,11 @@ jobs: npm install -g appium@beta npm install -g mjpeg-consumer - run: | - appium driver install xcuitest@beta - # appium plugin install images - # appium plugin install execute-driver - # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + appium driver install xcuitest@rc + appium plugin install images + appium plugin install execute-driver + nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: | appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda @@ -251,13 +251,13 @@ jobs: node-version: 'lts/*' # Start Appium - - run: npm install -g appium@beta + - run: npm install -g appium@rc - run: | - appium driver install uiautomator2@beta - # appium plugin install images - # appium plugin install execute-driver - # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - nohup appium --relaxed-security --log-timestamp --log-no-colors > appium.log & + appium driver install uiautomator2@rc + appium plugin install images + appium plugin install execute-driver + nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & + # nohup appium --relaxed-security --log-timestamp --log-no-colors > appium.log & - name: Enable KVM group perms run: | From f76bb27b6281febf897298787400462bb04e8bbe Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 09:57:04 +0900 Subject: [PATCH 10/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 155440b0..bee2bdf1 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -79,11 +79,11 @@ jobs: # Start Appium - run: npm install -g appium@rc - run: | - appium driver install xcuitest@beta - # appium plugin install images - # appium plugin install execute-driver - # nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + appium driver install xcuitest@rc + appium plugin install images + appium plugin install execute-driver + nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: | appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda @@ -152,7 +152,7 @@ jobs: # Start Appium - name: Install appium and mjpeg-consumer run: | - npm install -g appium@beta + npm install -g appium@rc npm install -g mjpeg-consumer - run: | appium driver install xcuitest@rc From 857b27a14c50fa1e31b8b6ab31486fc01a57d363 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 10:02:29 +0900 Subject: [PATCH 11/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index bee2bdf1..b4e1add1 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -80,8 +80,8 @@ jobs: - run: npm install -g appium@rc - run: | appium driver install xcuitest@rc - appium plugin install images - appium plugin install execute-driver + appium plugin install images@rc + appium plugin install execute-driver@rc nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & @@ -156,8 +156,8 @@ jobs: npm install -g mjpeg-consumer - run: | appium driver install xcuitest@rc - appium plugin install images - appium plugin install execute-driver + appium plugin install images@rc + appium plugin install execute-driver@rc nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & @@ -254,8 +254,8 @@ jobs: - run: npm install -g appium@rc - run: | appium driver install uiautomator2@rc - appium plugin install images - appium plugin install execute-driver + appium plugin install images@rc + appium plugin install execute-driver@rc nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & # nohup appium --relaxed-security --log-timestamp --log-no-colors > appium.log & From 112318e77af3c2334aa4b95834fc654497b95518 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 10:48:31 +0900 Subject: [PATCH 12/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index b4e1add1..d1126648 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -83,10 +83,11 @@ jobs: appium plugin install images@rc appium plugin install execute-driver@rc nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: | - appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda + cat /Users/runner/.appium/node_modules/appium-xcuitest-driver/scripts/download-wda-sim.mjs + node /Users/runner/.appium/node_modules/appium-xcuitest-driver/scripts/download-wda-sim.mjs --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda + # appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda name: Downloading prebuilt WDA - name: Set up Ruby From f19696d2685ca3c42a2c3fb65d0fa1489b27d708 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 11:02:00 +0900 Subject: [PATCH 13/27] run npm list as a debug --- .github/workflows/functional-test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index d1126648..ebf7e887 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -84,10 +84,10 @@ jobs: appium plugin install execute-driver@rc nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + - run: npm list + - run: | - cat /Users/runner/.appium/node_modules/appium-xcuitest-driver/scripts/download-wda-sim.mjs - node /Users/runner/.appium/node_modules/appium-xcuitest-driver/scripts/download-wda-sim.mjs --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda - # appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda + appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda name: Downloading prebuilt WDA - name: Set up Ruby From 28b3455fe413f693a70082bcb078861e3e2b451d Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 11:02:45 +0900 Subject: [PATCH 14/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index ebf7e887..da393415 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -87,7 +87,7 @@ jobs: - run: npm list - run: | - appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda + appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda name: Downloading prebuilt WDA - name: Set up Ruby @@ -163,7 +163,7 @@ jobs: # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: | - appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda + appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda name: Downloading prebuilt WDA - name: Set up Ruby From 7be4e7171b0ce1d84cb79d3e09cd9eaeef2af490 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 11:19:53 +0900 Subject: [PATCH 15/27] try without -g --- .github/workflows/functional-test.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index da393415..88fbf339 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -77,7 +77,7 @@ jobs: os_version: ${{ env.IOS_VERSION }} # Start Appium - - run: npm install -g appium@rc + - run: npm install appium@rc - run: | appium driver install xcuitest@rc appium plugin install images@rc @@ -85,6 +85,8 @@ jobs: nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: npm list + - run: npm -g list + - run: ls /usr/local/lib/node_modules - run: | appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda @@ -153,8 +155,8 @@ jobs: # Start Appium - name: Install appium and mjpeg-consumer run: | - npm install -g appium@rc - npm install -g mjpeg-consumer + npm install appium@rc + npm install mjpeg-consumer - run: | appium driver install xcuitest@rc appium plugin install images@rc @@ -252,7 +254,7 @@ jobs: node-version: 'lts/*' # Start Appium - - run: npm install -g appium@rc + - run: npm install appium@rc - run: | appium driver install uiautomator2@rc appium plugin install images@rc From a90e97e9f5ce0bbb39691a006b3076c2e7b100f7 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 15:42:06 +0900 Subject: [PATCH 16/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 38 +++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 88fbf339..6a8ceb69 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -77,19 +77,19 @@ jobs: os_version: ${{ env.IOS_VERSION }} # Start Appium - - run: npm install appium@rc + - run: npm install -g appium@rc - run: | - appium driver install xcuitest@rc - appium plugin install images@rc - appium plugin install execute-driver@rc - nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + npx appium driver install xcuitest@rc + npx appium plugin install images@rc + npx appium plugin install execute-driver@rc + nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: npm list - run: npm -g list - run: ls /usr/local/lib/node_modules - run: | - appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda + npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda name: Downloading prebuilt WDA - name: Set up Ruby @@ -155,17 +155,17 @@ jobs: # Start Appium - name: Install appium and mjpeg-consumer run: | - npm install appium@rc - npm install mjpeg-consumer + npm install -g appium@rc + npm install -g mjpeg-consumer - run: | - appium driver install xcuitest@rc - appium plugin install images@rc - appium plugin install execute-driver@rc - nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + npx appium driver install xcuitest@rc + npx appium plugin install images@rc + npx appium plugin install execute-driver@rc + nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: | - appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda + npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda name: Downloading prebuilt WDA - name: Set up Ruby @@ -254,13 +254,13 @@ jobs: node-version: 'lts/*' # Start Appium - - run: npm install appium@rc + - run: npm install -g appium@rc - run: | - appium driver install uiautomator2@rc - appium plugin install images@rc - appium plugin install execute-driver@rc - nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - # nohup appium --relaxed-security --log-timestamp --log-no-colors > appium.log & + npx appium driver install uiautomator2@rc + npx appium plugin install images@rc + npx appium plugin install execute-driver@rc + nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & + # nohup npx appium --relaxed-security --log-timestamp --log-no-colors > appium.log & - name: Enable KVM group perms run: | From 7d9b180cd377ea7a1abac4313c7dd67b9e686efe Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 20:58:38 +0900 Subject: [PATCH 17/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 6a8ceb69..1513b9af 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -86,7 +86,6 @@ jobs: - run: npm list - run: npm -g list - - run: ls /usr/local/lib/node_modules - run: | npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda From 7635d7c7c63a92be0ce802c251ae1bdf7d83d3fe Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 21:14:47 +0900 Subject: [PATCH 18/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 1513b9af..3dfbefbe 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -160,12 +160,10 @@ jobs: npx appium driver install xcuitest@rc npx appium plugin install images@rc npx appium plugin install execute-driver@rc + npx appium driver run xcuitest download-wda-sim --platform=ios --outdir=${{github.workspace}}/wda nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - - - run: | - npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda - name: Downloading prebuilt WDA + name: Preparing driver, plugins and downloading prebuilt WDA - name: Set up Ruby uses: ruby/setup-ruby@v1 From e6bc72b370a202cff4c68de7632b06f7e25503fc Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 21:51:53 +0900 Subject: [PATCH 19/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 3dfbefbe..dbc2301e 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -154,8 +154,8 @@ jobs: # Start Appium - name: Install appium and mjpeg-consumer run: | - npm install -g appium@rc - npm install -g mjpeg-consumer + npm install appium@rc + npm install mjpeg-consumer - run: | npx appium driver install xcuitest@rc npx appium plugin install images@rc From f4281703473688948da0d010eced80af726192d5 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 22:28:26 +0900 Subject: [PATCH 20/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 470 +++++++++++++------------- 1 file changed, 235 insertions(+), 235 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index dbc2301e..dbed39ac 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -13,107 +13,107 @@ concurrency: cancel-in-progress: true jobs: - ios_test: - strategy: - fail-fast: false - matrix: - test_targets: - - target: test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb - name: test1 - platform: ios - wdaName: WebDriverAgentRunner-Runner.app - - target: test/functional/ios/webdriver/create_session_test.rb,test/functional/ios/webdriver/w3c_actions_test.rb - name: test2 - platform: ios - wdaName: WebDriverAgentRunner-Runner.app - - target: test/functional/ios/webdriver/device_test.rb - name: test3 - platform: ios - wdaName: WebDriverAgentRunner-Runner.app - - target: test/functional/ios/ios/device_test.rb - name: test4 - platform: ios - wdaName: WebDriverAgentRunner-Runner.app - - target: test/functional/ios/ios/device_wda_attachment_test.rb,test/functional/ios/ios/search_context_test.rb - name: test5 - platform: ios - wdaName: WebDriverAgentRunner-Runner.app - - target: test/functional/ios/ios/image_comparison_test.rb - name: test6 - platform: ios - wdaName: WebDriverAgentRunner-Runner.app - - target: test/functional/ios/tv_driver_test.rb - name: test7 - platform: tvOS - wdaName: WebDriverAgentRunner_tvOS-Runner.app - - 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 - IOS_DEVICE_NAME: iPhone 16 Plus - - steps: - - uses: actions/checkout@v3 - - - name: Install Node.js - uses: actions/setup-node@v3 - with: - node-version: 'lts/*' - - - name: Select Xcode - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: ${{ env.XCODE_VERSION }} - - run: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false - - - uses: futureware-tech/simulator-action@v3 - with: - # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md - model: ${{ env.IOS_DEVICE_NAME }} - os_version: ${{ env.IOS_VERSION }} - - # Start Appium - - run: npm install -g appium@rc - - run: | - npx appium driver install xcuitest@rc - npx appium plugin install images@rc - npx appium plugin install execute-driver@rc - nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - - - run: npm list - - run: npm -g list - - - run: | - npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda - name: Downloading prebuilt WDA - - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.2 - - name: Install dependencies - run: bundle install - - # Run tests - - run: bundle exec rake test:func:ios TESTS=${{matrix.test_targets.target}} - name: Run tests - env: - IGNORE_VERSION_SKIP: true - CI: true - LOCAL_PREBUILT_WDA: ${{ github.workspace }}/wda/${{matrix.test_targets.wdaName}} - - - name: Save server output - if: ${{ always() }} - uses: actions/upload-artifact@master - with: - name: appium-ios-${{matrix.test_targets.name}}.log - path: | - appium.log - test/report/ + # ios_test: + # strategy: + # fail-fast: false + # matrix: + # test_targets: + # - target: test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb + # name: test1 + # platform: ios + # wdaName: WebDriverAgentRunner-Runner.app + # - target: test/functional/ios/webdriver/create_session_test.rb,test/functional/ios/webdriver/w3c_actions_test.rb + # name: test2 + # platform: ios + # wdaName: WebDriverAgentRunner-Runner.app + # - target: test/functional/ios/webdriver/device_test.rb + # name: test3 + # platform: ios + # wdaName: WebDriverAgentRunner-Runner.app + # - target: test/functional/ios/ios/device_test.rb + # name: test4 + # platform: ios + # wdaName: WebDriverAgentRunner-Runner.app + # - target: test/functional/ios/ios/device_wda_attachment_test.rb,test/functional/ios/ios/search_context_test.rb + # name: test5 + # platform: ios + # wdaName: WebDriverAgentRunner-Runner.app + # - target: test/functional/ios/ios/image_comparison_test.rb + # name: test6 + # platform: ios + # wdaName: WebDriverAgentRunner-Runner.app + # - target: test/functional/ios/tv_driver_test.rb + # name: test7 + # platform: tvOS + # wdaName: WebDriverAgentRunner_tvOS-Runner.app + + # 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 + # IOS_DEVICE_NAME: iPhone 16 Plus + + # steps: + # - uses: actions/checkout@v3 + + # - name: Install Node.js + # uses: actions/setup-node@v3 + # with: + # node-version: 'lts/*' + + # - name: Select Xcode + # uses: maxim-lobanov/setup-xcode@v1 + # with: + # xcode-version: ${{ env.XCODE_VERSION }} + # - run: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false + + # - uses: futureware-tech/simulator-action@v3 + # with: + # # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md + # model: ${{ env.IOS_DEVICE_NAME }} + # os_version: ${{ env.IOS_VERSION }} + + # # Start Appium + # - run: npm install -g appium@rc + # - run: | + # npx appium driver install xcuitest@rc + # npx appium plugin install images@rc + # npx appium plugin install execute-driver@rc + # nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + + # - run: npm list + # - run: npm -g list + + # - run: | + # npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda + # name: Downloading prebuilt WDA + + # - name: Set up Ruby + # uses: ruby/setup-ruby@v1 + # with: + # ruby-version: 3.2 + # - name: Install dependencies + # run: bundle install + + # # Run tests + # - run: bundle exec rake test:func:ios TESTS=${{matrix.test_targets.target}} + # name: Run tests + # env: + # IGNORE_VERSION_SKIP: true + # CI: true + # LOCAL_PREBUILT_WDA: ${{ github.workspace }}/wda/${{matrix.test_targets.wdaName}} + + # - name: Save server output + # if: ${{ always() }} + # uses: actions/upload-artifact@master + # with: + # name: appium-ios-${{matrix.test_targets.name}}.log + # path: | + # appium.log + # test/report/ ios_test_with_other_deps: runs-on: macos-15 @@ -152,10 +152,11 @@ jobs: brew install applesimutils # Start Appium + - run: npm root -g - name: Install appium and mjpeg-consumer run: | - npm install appium@rc - npm install mjpeg-consumer + npm install -g appium@rc + npm install -g mjpeg-consumer - run: | npx appium driver install xcuitest@rc npx appium plugin install images@rc @@ -164,7 +165,6 @@ jobs: nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & name: Preparing driver, plugins and downloading prebuilt WDA - - name: Set up Ruby uses: ruby/setup-ruby@v1 with: @@ -188,134 +188,134 @@ jobs: appium.log test/report/ - android_test: - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - test_targets: - - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - automation_name: uiautomator2 - name: test1 - # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - # automation_name: espresso - # name: test2 - - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - automation_name: uiautomator2 - name: test3 - # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - # automation_name: espresso - # name: test4 - - target: test/functional/android/android/mobile_commands_test.rb - automation_name: uiautomator2 - name: test5 - # - target: test/functional/android/android/mobile_commands_test.rb - # automation_name: espresso - # name: test6 - - target: test/functional/android/android/device_data_test.rb - automation_name: uiautomator2 - name: test7 - # - target: test/functional/android/android/device_data_test.rb - # automation_name: espresso - # name: test8 - - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - automation_name: uiautomator2 - name: test9 - # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - # automation_name: espresso - # name: test10 - # FIXME: rever the comment out after https://github.com/appium/appium/pull/21468 - - target: test/functional/android/webdriver/bidi_test.rb - automation_name: uiautomator2 - name: test11 - # - target: test/functional/android/webdriver/bidi_test.rb - # automation_name: espresso - # name: test12 - - env: - API_LEVEL: 36 - ARCH: x86_64 - - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: '17' - - - name: Install Node.js - uses: actions/setup-node@v3 - with: - node-version: 'lts/*' - - # Start Appium - - run: npm install -g appium@rc - - run: | - npx appium driver install uiautomator2@rc - npx appium plugin install images@rc - npx appium plugin install execute-driver@rc - nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - # nohup npx appium --relaxed-security --log-timestamp --log-no-colors > appium.log & - - - 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@v3 - 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 Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.2 - - name: Install dependencies - run: bundle install - - # Run tests - - - name: run tests - uses: reactivecircus/android-emulator-runner@v2 - with: - api-level: ${{ env.API_LEVEL }} - arch: ${{ env.ARCH }} - script: | - bundle exec rake test:func:android TESTS=${{matrix.test_targets.target}} - 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 server output - if: ${{ always() }} - uses: actions/upload-artifact@master - with: - name: appium-android-${{matrix.test_targets.automation_name}}-${{matrix.test_targets.name}}.log - path: | - appium.log - test/report/ + # android_test: + # runs-on: ubuntu-latest + + # strategy: + # fail-fast: false + # matrix: + # test_targets: + # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + # automation_name: uiautomator2 + # name: test1 + # # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + # # automation_name: espresso + # # name: test2 + # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + # automation_name: uiautomator2 + # name: test3 + # # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + # # automation_name: espresso + # # name: test4 + # - target: test/functional/android/android/mobile_commands_test.rb + # automation_name: uiautomator2 + # name: test5 + # # - target: test/functional/android/android/mobile_commands_test.rb + # # automation_name: espresso + # # name: test6 + # - target: test/functional/android/android/device_data_test.rb + # automation_name: uiautomator2 + # name: test7 + # # - target: test/functional/android/android/device_data_test.rb + # # automation_name: espresso + # # name: test8 + # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + # automation_name: uiautomator2 + # name: test9 + # # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + # # automation_name: espresso + # # name: test10 + # # FIXME: rever the comment out after https://github.com/appium/appium/pull/21468 + # - target: test/functional/android/webdriver/bidi_test.rb + # automation_name: uiautomator2 + # name: test11 + # # - target: test/functional/android/webdriver/bidi_test.rb + # # automation_name: espresso + # # name: test12 + + # env: + # API_LEVEL: 36 + # ARCH: x86_64 + + # steps: + # - uses: actions/checkout@v3 + + # - uses: actions/setup-java@v3 + # with: + # distribution: 'temurin' + # java-version: '17' + + # - name: Install Node.js + # uses: actions/setup-node@v3 + # with: + # node-version: 'lts/*' + + # # Start Appium + # - run: npm install -g appium@rc + # - run: | + # npx appium driver install uiautomator2@rc + # npx appium plugin install images@rc + # npx appium plugin install execute-driver@rc + # nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & + # # nohup npx appium --relaxed-security --log-timestamp --log-no-colors > appium.log & + + # - 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@v3 + # 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 Ruby + # uses: ruby/setup-ruby@v1 + # with: + # ruby-version: 3.2 + # - name: Install dependencies + # run: bundle install + + # # Run tests + + # - name: run tests + # uses: reactivecircus/android-emulator-runner@v2 + # with: + # api-level: ${{ env.API_LEVEL }} + # arch: ${{ env.ARCH }} + # script: | + # bundle exec rake test:func:android TESTS=${{matrix.test_targets.target}} + # 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 server output + # if: ${{ always() }} + # uses: actions/upload-artifact@master + # with: + # name: appium-android-${{matrix.test_targets.automation_name}}-${{matrix.test_targets.name}}.log + # path: | + # appium.log + # test/report/ From 8ee42d28859463910033ce30e6e2b8932a10a966 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 22:50:57 +0900 Subject: [PATCH 21/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index dbed39ac..dc312133 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -157,11 +157,13 @@ jobs: run: | npm install -g appium@rc npm install -g mjpeg-consumer + - run: | + npm install -g appium-xcuitest-driver@rc + node `npm root -g`/appium-xcuitest-driver/scripts/download-wda-sim.mjs --platform=ios --outdir=${{github.workspace}}/wda - run: | npx appium driver install xcuitest@rc npx appium plugin install images@rc npx appium plugin install execute-driver@rc - npx appium driver run xcuitest download-wda-sim --platform=ios --outdir=${{github.workspace}}/wda nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & name: Preparing driver, plugins and downloading prebuilt WDA From e0d3a65efc521d173554be7ef340298ac35806c1 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 23:13:00 +0900 Subject: [PATCH 22/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index dc312133..5dc13a10 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -158,6 +158,7 @@ jobs: npm install -g appium@rc npm install -g mjpeg-consumer - run: | + node -e "console.log(process.env)" npm install -g appium-xcuitest-driver@rc node `npm root -g`/appium-xcuitest-driver/scripts/download-wda-sim.mjs --platform=ios --outdir=${{github.workspace}}/wda - run: | From 7034df18e2691d016e2075645fc3d34cd76ba217 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 23:22:40 +0900 Subject: [PATCH 23/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 5dc13a10..53ab338d 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -158,13 +158,11 @@ jobs: npm install -g appium@rc npm install -g mjpeg-consumer - run: | - node -e "console.log(process.env)" - npm install -g appium-xcuitest-driver@rc - node `npm root -g`/appium-xcuitest-driver/scripts/download-wda-sim.mjs --platform=ios --outdir=${{github.workspace}}/wda - - run: | + export NODE_PATH=`npm root -g` npx appium driver install xcuitest@rc npx appium plugin install images@rc npx appium plugin install execute-driver@rc + npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & name: Preparing driver, plugins and downloading prebuilt WDA From 48b021540e8996939799509b38b1e0b5b5f526a5 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 23:49:39 +0900 Subject: [PATCH 24/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 478 +++++++++++++------------- 1 file changed, 238 insertions(+), 240 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 53ab338d..a3bd9625 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -13,107 +13,104 @@ concurrency: cancel-in-progress: true jobs: - # ios_test: - # strategy: - # fail-fast: false - # matrix: - # test_targets: - # - target: test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb - # name: test1 - # platform: ios - # wdaName: WebDriverAgentRunner-Runner.app - # - target: test/functional/ios/webdriver/create_session_test.rb,test/functional/ios/webdriver/w3c_actions_test.rb - # name: test2 - # platform: ios - # wdaName: WebDriverAgentRunner-Runner.app - # - target: test/functional/ios/webdriver/device_test.rb - # name: test3 - # platform: ios - # wdaName: WebDriverAgentRunner-Runner.app - # - target: test/functional/ios/ios/device_test.rb - # name: test4 - # platform: ios - # wdaName: WebDriverAgentRunner-Runner.app - # - target: test/functional/ios/ios/device_wda_attachment_test.rb,test/functional/ios/ios/search_context_test.rb - # name: test5 - # platform: ios - # wdaName: WebDriverAgentRunner-Runner.app - # - target: test/functional/ios/ios/image_comparison_test.rb - # name: test6 - # platform: ios - # wdaName: WebDriverAgentRunner-Runner.app - # - target: test/functional/ios/tv_driver_test.rb - # name: test7 - # platform: tvOS - # wdaName: WebDriverAgentRunner_tvOS-Runner.app - - # 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 - # IOS_DEVICE_NAME: iPhone 16 Plus - - # steps: - # - uses: actions/checkout@v3 - - # - name: Install Node.js - # uses: actions/setup-node@v3 - # with: - # node-version: 'lts/*' - - # - name: Select Xcode - # uses: maxim-lobanov/setup-xcode@v1 - # with: - # xcode-version: ${{ env.XCODE_VERSION }} - # - run: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false - - # - uses: futureware-tech/simulator-action@v3 - # with: - # # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md - # model: ${{ env.IOS_DEVICE_NAME }} - # os_version: ${{ env.IOS_VERSION }} - - # # Start Appium - # - run: npm install -g appium@rc - # - run: | - # npx appium driver install xcuitest@rc - # npx appium plugin install images@rc - # npx appium plugin install execute-driver@rc - # nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - - # - run: npm list - # - run: npm -g list - - # - run: | - # npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda - # name: Downloading prebuilt WDA - - # - name: Set up Ruby - # uses: ruby/setup-ruby@v1 - # with: - # ruby-version: 3.2 - # - name: Install dependencies - # run: bundle install - - # # Run tests - # - run: bundle exec rake test:func:ios TESTS=${{matrix.test_targets.target}} - # name: Run tests - # env: - # IGNORE_VERSION_SKIP: true - # CI: true - # LOCAL_PREBUILT_WDA: ${{ github.workspace }}/wda/${{matrix.test_targets.wdaName}} - - # - name: Save server output - # if: ${{ always() }} - # uses: actions/upload-artifact@master - # with: - # name: appium-ios-${{matrix.test_targets.name}}.log - # path: | - # appium.log - # test/report/ + ios_test: + strategy: + fail-fast: false + matrix: + test_targets: + - target: test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb + name: test1 + platform: ios + wdaName: WebDriverAgentRunner-Runner.app + - target: test/functional/ios/webdriver/create_session_test.rb,test/functional/ios/webdriver/w3c_actions_test.rb + name: test2 + platform: ios + wdaName: WebDriverAgentRunner-Runner.app + - target: test/functional/ios/webdriver/device_test.rb + name: test3 + platform: ios + wdaName: WebDriverAgentRunner-Runner.app + - target: test/functional/ios/ios/device_test.rb + name: test4 + platform: ios + wdaName: WebDriverAgentRunner-Runner.app + - target: test/functional/ios/ios/device_wda_attachment_test.rb,test/functional/ios/ios/search_context_test.rb + name: test5 + platform: ios + wdaName: WebDriverAgentRunner-Runner.app + - target: test/functional/ios/ios/image_comparison_test.rb + name: test6 + platform: ios + wdaName: WebDriverAgentRunner-Runner.app + - target: test/functional/ios/tv_driver_test.rb + name: test7 + platform: tvOS + wdaName: WebDriverAgentRunner_tvOS-Runner.app + + 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 + IOS_DEVICE_NAME: iPhone 16 Plus + + steps: + - uses: actions/checkout@v3 + + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 'lts/*' + + - name: Select Xcode + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: ${{ env.XCODE_VERSION }} + - run: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false + + - uses: futureware-tech/simulator-action@v3 + with: + # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md + model: ${{ env.IOS_DEVICE_NAME }} + os_version: ${{ env.IOS_VERSION }} + + # Start Appium + - run: npm install -g appium@rc + - run: | + appium driver install xcuitest@rc + appium plugin install images@rc + appium plugin install execute-driver@rc + nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + + - run: | + appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{github.workspace}}/wda + name: Downloading prebuilt WDA + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2 + - name: Install dependencies + run: bundle install + + # Run tests + - run: bundle exec rake test:func:ios TESTS=${{matrix.test_targets.target}} + name: Run tests + env: + IGNORE_VERSION_SKIP: true + CI: true + LOCAL_PREBUILT_WDA: ${{ github.workspace }}/wda/${{matrix.test_targets.wdaName}} + + - name: Save server output + if: ${{ always() }} + uses: actions/upload-artifact@master + with: + name: appium-ios-${{matrix.test_targets.name}}.log + path: | + appium.log + test/report/ ios_test_with_other_deps: runs-on: macos-15 @@ -158,14 +155,15 @@ jobs: npm install -g appium@rc npm install -g mjpeg-consumer - run: | - export NODE_PATH=`npm root -g` - npx appium driver install xcuitest@rc - npx appium plugin install images@rc - npx appium plugin install execute-driver@rc - npx appium driver run xcuitest download-wda-sim --platform=${{matrix.test_targets.platform}} --outdir=${{ github.workspace }}/wda - nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - # nohup appium --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - name: Preparing driver, plugins and downloading prebuilt WDA + appium driver install xcuitest@rc + appium plugin install images@rc + appium plugin install execute-driver@rc + nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & + + - run: | + appium driver run xcuitest download-wda-sim --platform=ios --outdir=${{github.workspace}}/wda + name: Downloading prebuilt WDA + - name: Set up Ruby uses: ruby/setup-ruby@v1 with: @@ -189,134 +187,134 @@ jobs: appium.log test/report/ - # android_test: - # runs-on: ubuntu-latest - - # strategy: - # fail-fast: false - # matrix: - # test_targets: - # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - # automation_name: uiautomator2 - # name: test1 - # # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - # # automation_name: espresso - # # name: test2 - # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - # automation_name: uiautomator2 - # name: test3 - # # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - # # automation_name: espresso - # # name: test4 - # - target: test/functional/android/android/mobile_commands_test.rb - # automation_name: uiautomator2 - # name: test5 - # # - target: test/functional/android/android/mobile_commands_test.rb - # # automation_name: espresso - # # name: test6 - # - target: test/functional/android/android/device_data_test.rb - # automation_name: uiautomator2 - # name: test7 - # # - target: test/functional/android/android/device_data_test.rb - # # automation_name: espresso - # # name: test8 - # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - # automation_name: uiautomator2 - # name: test9 - # # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - # # automation_name: espresso - # # name: test10 - # # FIXME: rever the comment out after https://github.com/appium/appium/pull/21468 - # - target: test/functional/android/webdriver/bidi_test.rb - # automation_name: uiautomator2 - # name: test11 - # # - target: test/functional/android/webdriver/bidi_test.rb - # # automation_name: espresso - # # name: test12 - - # env: - # API_LEVEL: 36 - # ARCH: x86_64 - - # steps: - # - uses: actions/checkout@v3 - - # - uses: actions/setup-java@v3 - # with: - # distribution: 'temurin' - # java-version: '17' - - # - name: Install Node.js - # uses: actions/setup-node@v3 - # with: - # node-version: 'lts/*' - - # # Start Appium - # - run: npm install -g appium@rc - # - run: | - # npx appium driver install uiautomator2@rc - # npx appium plugin install images@rc - # npx appium plugin install execute-driver@rc - # nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - # # nohup npx appium --relaxed-security --log-timestamp --log-no-colors > appium.log & - - # - 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@v3 - # 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 Ruby - # uses: ruby/setup-ruby@v1 - # with: - # ruby-version: 3.2 - # - name: Install dependencies - # run: bundle install - - # # Run tests - - # - name: run tests - # uses: reactivecircus/android-emulator-runner@v2 - # with: - # api-level: ${{ env.API_LEVEL }} - # arch: ${{ env.ARCH }} - # script: | - # bundle exec rake test:func:android TESTS=${{matrix.test_targets.target}} - # 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 server output - # if: ${{ always() }} - # uses: actions/upload-artifact@master - # with: - # name: appium-android-${{matrix.test_targets.automation_name}}-${{matrix.test_targets.name}}.log - # path: | - # appium.log - # test/report/ + android_test: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + test_targets: + - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + automation_name: uiautomator2 + name: test1 + # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + # automation_name: espresso + # name: test2 + - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + automation_name: uiautomator2 + name: test3 + # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + # automation_name: espresso + # name: test4 + - target: test/functional/android/android/mobile_commands_test.rb + automation_name: uiautomator2 + name: test5 + # - target: test/functional/android/android/mobile_commands_test.rb + # automation_name: espresso + # name: test6 + - target: test/functional/android/android/device_data_test.rb + automation_name: uiautomator2 + name: test7 + # - target: test/functional/android/android/device_data_test.rb + # automation_name: espresso + # name: test8 + - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + automation_name: uiautomator2 + name: test9 + # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + # automation_name: espresso + # name: test10 + # FIXME: rever the comment out after https://github.com/appium/appium/pull/21468 + - target: test/functional/android/webdriver/bidi_test.rb + automation_name: uiautomator2 + name: test11 + # - target: test/functional/android/webdriver/bidi_test.rb + # automation_name: espresso + # name: test12 + + env: + API_LEVEL: 36 + ARCH: x86_64 + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 'lts/*' + + # Start Appium + - run: npm install -g appium@rc + - run: | + npx appium driver install uiautomator2@rc + npx appium plugin install images@rc + npx appium plugin install execute-driver@rc + nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & + # nohup npx appium --relaxed-security --log-timestamp --log-no-colors > appium.log & + + - 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@v3 + 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 Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2 + - name: Install dependencies + run: bundle install + + # Run tests + + - name: run tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: ${{ env.API_LEVEL }} + arch: ${{ env.ARCH }} + script: | + bundle exec rake test:func:android TESTS=${{matrix.test_targets.target}} + 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 server output + if: ${{ always() }} + uses: actions/upload-artifact@master + with: + name: appium-android-${{matrix.test_targets.automation_name}}-${{matrix.test_targets.name}}.log + path: | + appium.log + test/report/ From c79e83358a13d87f800b4a29264051470582a551 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 18 Aug 2025 23:50:32 +0900 Subject: [PATCH 25/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index a3bd9625..20f59d4e 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -252,11 +252,10 @@ jobs: # Start Appium - run: npm install -g appium@rc - run: | - npx appium driver install uiautomator2@rc - npx appium plugin install images@rc - npx appium plugin install execute-driver@rc - nohup npx appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - # nohup npx appium --relaxed-security --log-timestamp --log-no-colors > appium.log & + appium driver install uiautomator2@rc + appium plugin install images@rc + appium plugin install execute-driver@rc + nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - name: Enable KVM group perms run: | From 21caf5755c876f2dc4be2d952bb8d7ed31918080 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Tue, 19 Aug 2025 08:28:55 +0900 Subject: [PATCH 26/27] drop @rc from appium modules --- .github/workflows/functional-test.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 20f59d4e..eb6a3ac0 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -77,11 +77,11 @@ jobs: os_version: ${{ env.IOS_VERSION }} # Start Appium - - run: npm install -g appium@rc + - run: npm install -g appium - run: | appium driver install xcuitest@rc - appium plugin install images@rc - appium plugin install execute-driver@rc + appium plugin install images + appium plugin install execute-driver nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: | @@ -152,12 +152,12 @@ jobs: - run: npm root -g - name: Install appium and mjpeg-consumer run: | - npm install -g appium@rc + npm install -g appium npm install -g mjpeg-consumer - run: | appium driver install xcuitest@rc - appium plugin install images@rc - appium plugin install execute-driver@rc + appium plugin install images + appium plugin install execute-driver nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - run: | @@ -250,11 +250,11 @@ jobs: node-version: 'lts/*' # Start Appium - - run: npm install -g appium@rc + - run: npm install -g appium - run: | appium driver install uiautomator2@rc - appium plugin install images@rc - appium plugin install execute-driver@rc + appium plugin install images + appium plugin install execute-driver nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & - name: Enable KVM group perms From 051293fbb83f6cda0ed701b614ec387f4394293a Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Tue, 19 Aug 2025 15:52:15 +0900 Subject: [PATCH 27/27] Update functional-test.yml --- .github/workflows/functional-test.yml | 45 +++++++++++++-------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index eb6a3ac0..882a00e7 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -79,7 +79,7 @@ jobs: # Start Appium - run: npm install -g appium - run: | - appium driver install xcuitest@rc + appium driver install xcuitest appium plugin install images appium plugin install execute-driver nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & @@ -155,7 +155,7 @@ jobs: npm install -g appium npm install -g mjpeg-consumer - run: | - appium driver install xcuitest@rc + appium driver install xcuitest appium plugin install images appium plugin install execute-driver nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & @@ -197,40 +197,39 @@ jobs: - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb automation_name: uiautomator2 name: test1 - # - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb - # automation_name: espresso - # name: test2 + - target: test/functional/android/driver_test.rb,test/functional/android/patch_test.rb,test/functional/android/android/device_test.rb,test/functional/android/android/search_context_test.rb + automation_name: espresso + name: test2 - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb automation_name: uiautomator2 name: test3 - # - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb - # automation_name: espresso - # name: test4 + - target: test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb + automation_name: espresso + name: test4 - target: test/functional/android/android/mobile_commands_test.rb automation_name: uiautomator2 name: test5 - # - target: test/functional/android/android/mobile_commands_test.rb - # automation_name: espresso - # name: test6 + - target: test/functional/android/android/mobile_commands_test.rb + automation_name: espresso + name: test6 - target: test/functional/android/android/device_data_test.rb automation_name: uiautomator2 name: test7 - # - target: test/functional/android/android/device_data_test.rb - # automation_name: espresso - # name: test8 + - target: test/functional/android/android/device_data_test.rb + automation_name: espresso + name: test8 - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb automation_name: uiautomator2 name: test9 - # - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb - # automation_name: espresso - # name: test10 - # FIXME: rever the comment out after https://github.com/appium/appium/pull/21468 + - target: test/functional/android/android/mjpeg_server_test.rb,test/functional/android/android/image_comparison_test.rb + automation_name: espresso + name: test10 - target: test/functional/android/webdriver/bidi_test.rb automation_name: uiautomator2 name: test11 - # - target: test/functional/android/webdriver/bidi_test.rb - # automation_name: espresso - # name: test12 + - target: test/functional/android/webdriver/bidi_test.rb + automation_name: espresso + name: test12 env: API_LEVEL: 36 @@ -252,10 +251,10 @@ jobs: # Start Appium - run: npm install -g appium - run: | - appium driver install uiautomator2@rc + appium driver install ${{matrix.test_targets.automation_name}} appium plugin install images appium plugin install execute-driver - nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log & + nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors 2>&1 > appium.log & - name: Enable KVM group perms run: |