# jobs for functional test parameters: vmImage: 'macOS-10.15' vmImageForIOS: 'macOS-10.15' # Not sure the reason, but macOS 10.14 instance raises no info.plist error xcodeForIOS: 12.2 xcodeForTVOS: 12.2 androidSDK: 29 # API Level 30 emulators are more unstable than 29 appiumVersion: 'beta' ignoreVersionSkip: true CI: true jobs: # Run unit tests on different Node versions - job: func_test_ios_base pool: vmImage: ${{ parameters.vmImageForIOS }} variables: CI: ${{ parameters.ci }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} steps: - template: ./functional/ios_setup.yml parameters: xcodeVersion: ${{ parameters.xcodeForIOS }} - template: ./functional/run_appium.yml - script: bundle exec rake test:func:ios TESTS=test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb displayName: Run tests func_test_ios_base - template: ./functional/publish_test_result.yml - job: func_test_ios_webdriver1 pool: vmImage: ${{ parameters.vmImageForIOS }} variables: CI: ${{ parameters.ci }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} steps: - template: ./functional/ios_setup.yml parameters: xcodeVersion: ${{ parameters.xcodeForIOS }} - template: ./functional/run_appium.yml - script: bundle exec rake test:func:ios TESTS=test/functional/ios/webdriver/create_session_test.rb,test/functional/ios/webdriver/w3c_actions_test.rb displayName: Run tests func_test_ios_webdriver1 - template: ./functional/publish_test_result.yml - job: func_test_ios_webdriver2 pool: vmImage: ${{ parameters.vmImageForIOS }} variables: CI: ${{ parameters.ci }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} steps: - template: ./functional/ios_setup.yml parameters: xcodeVersion: ${{ parameters.xcodeForIOS }} - template: ./functional/run_appium.yml - script: bundle exec rake test:func:ios TESTS=test/functional/ios/webdriver/device_test.rb displayName: Run tests func_test_ios_webdriver2 - template: ./functional/publish_test_result.yml - job: func_test_ios_ios1 pool: vmImage: ${{ parameters.vmImageForIOS }} variables: CI: ${{ parameters.ci }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} steps: - template: ./functional/ios_setup.yml parameters: xcodeVersion: ${{ parameters.xcodeForIOS }} - template: ./functional/run_appium.yml - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_test.rb displayName: Run tests func_test_ios_ios1 - template: ./functional/publish_test_result.yml - job: func_test_ios_ios2 pool: vmImage: ${{ parameters.vmImageForIOS }} variables: CI: ${{ parameters.ci }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} steps: - template: ./functional/ios_setup.yml parameters: xcodeVersion: ${{ parameters.xcodeForIOS }} - template: ./functional/run_appium.yml - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_wda_attachment_test.rb,test/functional/ios/ios/search_context_test.rb displayName: Run tests func_test_ios_ios2 - template: ./functional/publish_test_result.yml - job: func_test_ios_ios3 pool: vmImage: ${{ parameters.vmImageForIOS }} variables: CI: ${{ parameters.ci }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} steps: - template: ./functional/ios_setup.yml parameters: xcodeVersion: ${{ parameters.xcodeForIOS }} - script: brew install ffmpeg && brew tap wix/brew && brew install wix/brew/applesimutils displayName: Install ffmpeg and applesimutils - template: ./functional/run_appium.yml - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/mjpeg_server_test.rb,test/functional/ios/ios/mobile_commands_test.rb displayName: Run tests func_test_ios_ios3 - template: ./functional/publish_test_result.yml - job: func_test_ios_tvos pool: vmImage: ${{ parameters.vmImage }} variables: CI: ${{ parameters.ci }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} steps: - template: ./functional/ios_setup.yml parameters: xcodeVersion: ${{ parameters.xcodeForTVOS }} - template: ./functional/run_appium.yml - script: bundle exec rake test:func:ios TESTS=test/functional/ios/tv_driver_test.rb displayName: Run tests func_test_ios_tvos - template: ./functional/publish_test_result.yml # Skip since opencv4nodejs fails to install on the macOS instance # - job: func_test_ios_opencv # pool: # vmImage: ${{ parameters.vmImageForIOS }} # variables: # CI: ${{ parameters.ci }} # IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} # APPIUM_VERSION: ${{ parameters.appiumVersion }} # steps: # - template: ./functional/ios_setup.yml # parameters: # xcodeVersion: ${{ parameters.xcodeForIOS }} # - template: ./functional/run_appium.yml # - script: npm install -g opencv4nodejs@5.1.0 # displayName: Install opencv4nodejs@5.1.0 # - script: bundle exec rake test:func:ios test/functional/ios/ios/image_comparison_test.rb # displayName: Run tests # - template: ./functional/publish_test_result.yml - job: func_test_android_base pool: vmImage: ${{ parameters.vmImage }} variables: CI: ${{ parameters.ci }} ANDROID_SDK_VERSION: ${{ parameters.androidSDK }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} strategy: matrix: uiautomator2: AUTOMATION_NAME_DROID: 'uiautomator2' espresso: AUTOMATION_NAME_DROID: 'espresso' steps: - template: ./functional/android_setup.yml - template: ./functional/run_appium.yml - script: bundle exec rake test:func:android TESTS=test/functional/android/driver_test.rb,test/functional/android/patch_test.rb displayName: Run tests func_test_android_base - template: ./functional/publish_test_result.yml - job: func_test_android_webdriver pool: vmImage: ${{ parameters.vmImage }} variables: CI: ${{ parameters.ci }} ANDROID_SDK_VERSION: ${{ parameters.androidSDK }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} strategy: matrix: uiautomator2: AUTOMATION_NAME_DROID: 'uiautomator2' espresso: AUTOMATION_NAME_DROID: 'espresso' steps: - template: ./functional/android_setup.yml - template: ./functional/run_appium.yml - script: bundle exec rake test:func:android TESTS=test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb displayName: Run tests func_test_android_webdriver - template: ./functional/publish_test_result.yml - job: func_test_android_android1 pool: vmImage: ${{ parameters.vmImage }} variables: CI: ${{ parameters.ci }} ANDROID_SDK_VERSION: ${{ parameters.androidSDK }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} strategy: matrix: uiautomator2: AUTOMATION_NAME_DROID: 'uiautomator2' espresso: AUTOMATION_NAME_DROID: 'espresso' steps: - template: ./functional/android_setup.yml - template: ./functional/run_appium.yml - script: bundle exec rake test:func:android TESTS=test/functional/android/android/device_test.rb displayName: Run tests func_test_android_android1 - template: ./functional/publish_test_result.yml - job: func_test_android_android2 pool: vmImage: ${{ parameters.vmImage }} variables: CI: ${{ parameters.ci }} ANDROID_SDK_VERSION: ${{ parameters.androidSDK }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} strategy: matrix: uiautomator2: AUTOMATION_NAME_DROID: 'uiautomator2' espresso: AUTOMATION_NAME_DROID: 'espresso' steps: - template: ./functional/android_setup.yml - template: ./functional/run_appium.yml - script: bundle exec rake test:func:android TESTS=test/functional/android/android/search_context_test.rb,test/functional/android/android/mjpeg_server_test.rb displayName: Run tests func_test_android_android2 - template: ./functional/publish_test_result.yml - job: func_test_android_android3 pool: vmImage: ${{ parameters.vmImage }} variables: CI: ${{ parameters.ci }} ANDROID_SDK_VERSION: ${{ parameters.androidSDK }} IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} strategy: matrix: uiautomator2: AUTOMATION_NAME_DROID: 'uiautomator2' espresso: AUTOMATION_NAME_DROID: 'espresso' steps: - template: ./functional/android_setup.yml - template: ./functional/run_appium.yml - script: bundle exec rake test:func:android TESTS=test/functional/android/android/device_data_test.rb displayName: Run tests func_test_android_android3 - template: ./functional/publish_test_result.yml - job: func_test_android_mobile_command_espresso pool: vmImage: ${{ parameters.vmImage }} variables: CI: ${{ parameters.ci }} ANDROID_SDK_VERSION: ${{ parameters.androidSDK }} AUTOMATION_NAME_DROID: espresso IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} APPIUM_VERSION: ${{ parameters.appiumVersion }} strategy: matrix: uiautomator2: AUTOMATION_NAME_DROID: 'uiautomator2' espresso: AUTOMATION_NAME_DROID: 'espresso' steps: - template: ./functional/android_setup.yml - template: ./functional/run_appium.yml - script: bundle exec rake test:func:android TESTS=test/functional/android/android/mobile_commands_test.rb displayName: Run tests func_test_android_mobile_command_espresso - template: ./functional/publish_test_result.yml # Skip since opencv4nodejs fails to install on the macOS instance # - job: func_test_android_opencv # pool: # vmImage: ${{ parameters.vmImage }} # variables: # CI: ${{ parameters.ci }} # ANDROID_SDK_VERSION: ${{ parameters.androidSDK }} # IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }} # APPIUM_VERSION: ${{ parameters.appiumVersion }} # strategy: # matrix: # uiautomator2: # AUTOMATION_NAME_DROID: 'uiautomator2' # espresso: # AUTOMATION_NAME_DROID: 'espresso' # steps: # - template: ./functional/android_setup.yml # - template: ./functional/run_appium.yml # - script: npm install -g opencv4nodejs@5.1.0 # displayName: Install opencv4nodejs@5.1.0 # - script: bundle exec rake test:func:android TESTS=test/functional/android/android/image_comparison_test.rb # displayName: Run tests func_test_android_opencv # - template: ./functional/publish_test_result.yml