Skip to content

test: enable bidi tests #373

test: enable bidi tests

test: enable bidi tests #373

Workflow file for this run

name: Functional Tests
on:
# Run by manual at this time
workflow_dispatch:
push:
branches: [ master ]
pull_request:
branches: [ master ]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
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_with_other_deps:
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 }}
- name: Preparing other environment
run: |
brew install ffmpeg
brew tap wix/brew
brew install applesimutils
# Start Appium
- run: npm root -g
- name: Install appium and mjpeg-consumer
run: |
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
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2
- name: Install dependencies
run: bundle install
- run: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/mjpeg_server_test.rb,test/functional/ios/ios/mobile_commands_test.rb
name: Run tests
env:
IGNORE_VERSION_SKIP: true
CI: true
LOCAL_PREBUILT_WDA: ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app
- name: Save server output
if: ${{ always() }}
uses: actions/upload-artifact@master
with:
name: appium-ios_test_with_other_deps.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/