onnxruntime/tools/ci_build/github/azure-pipelines/templates/web-browserstack-ci.yml

89 lines
3 KiB
YAML

parameters:
- name: CommitOverride
type: boolean
default: false
jobs:
- job: build_onnxruntime_web_browserstack
pool: Onnxruntime-BrowserStack-for-Web
timeoutInMinutes: 30
workspace:
clean: all
steps:
- checkout: self
submodules: false
- task: DownloadPipelineArtifact@2
inputs:
artifact: '__commit'
path: $(Pipeline.Workspace)
displayName: 'Get commit SHA'
condition: eq('${{ parameters.CommitOverride }}', 'true')
- script: |
__commit__=$(<$(Pipeline.Workspace)/__commit.txt)
__commit__=${__commit__//[$'\t\r\n']}
git fetch origin $__commit__:refs/remotes/origin/$__commit__
git checkout --force $__commit__
workingDirectory: '$(Build.SourcesDirectory)'
displayName: 'Read commit SHA and checkout'
condition: eq('${{ parameters.CommitOverride }}', 'true')
- task: NodeTool@0
inputs:
versionSpec: '20.x'
- task: DownloadPipelineArtifact@2
inputs:
patterns: 'Release_*/**/*'
path: $(Pipeline.Workspace)/artifacts
displayName: 'Download WebAssembly artifacts'
- task: CopyFiles@2
inputs:
sourceFolder: $(Pipeline.Workspace)/artifacts
contents: |
**/*.*
targetFolder: $(Build.SourcesDirectory)/js/web/dist
flattenFolders: true
displayName: 'Binplace dist files'
- script: |
npm ci
workingDirectory: '$(Build.SourcesDirectory)/js'
displayName: 'npm ci /js/'
- script: |
npm ci
workingDirectory: '$(Build.SourcesDirectory)/js/common'
displayName: 'npm ci /js/common/'
- script: |
npm ci
workingDirectory: '$(Build.SourcesDirectory)/js/web'
displayName: 'npm ci /js/web/'
- task: BrowserStackConfig@0
inputs:
BrowserStackServiceEndPoint: 'BrowserStack Connection'
browserstackLocal: true
displayName: 'BrowserStack configuration setup'
timeoutInMinutes: 20
- script: |
export ORT_WEB_TEST_BS_BROWSERS=BS_MAC_11_Safari_14,BS_MAC_11_Chrome_91,BS_ANDROID_11_Pixel_5
npm test -- suite0 -e=bs --wasm.initTimeout=30000 --file-cache
workingDirectory: '$(Build.SourcesDirectory)/js/web'
displayName: 'npm test (Suite0, BS_ANDROID, BS_MAC)'
env:
BROWSERSTACK_ACCESS_KEY: $(BROWSERSTACK_ACCESS_KEY)
BROWSERSTACK_USERNAME: $(BROWSERSTACK_USERNAME)
continueOnError: true
- script: |
export ORT_WEB_TEST_BS_BROWSERS=BS_IOS_14_iPhoneXS
npm test -- suite1 -e=bs --wasm.initTimeout=30000 --file-cache --backend=wasm
workingDirectory: '$(Build.SourcesDirectory)/js/web'
displayName: 'npm test (Suite1, BS_IOS)'
continueOnError: true
env:
BROWSERSTACK_ACCESS_KEY: $(BROWSERSTACK_ACCESS_KEY)
BROWSERSTACK_USERNAME: $(BROWSERSTACK_USERNAME)
- task: BrowserStackStopLocal@0
- task: BrowserStackResults@0
displayName: 'BrowserStack results'
continueOnError: true
timeoutInMinutes: 10
- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
displayName: 'Clean Agent Directories'
condition: always()