onnxruntime/tools/ci_build/github/azure-pipelines/templates/web-browserstack-ci.yml
Changming Sun a942bbf489
Update nodejs to 18.x (#17657)
1. Upgrade nodejs from 16.x to 18.x for Windows pipelines
2. Avoid using Azure DevOps "NodeTool" on Linux. The tool installs
nodejs from internet or local disk cache. But we already moved all Linux
tests to docker. So we do not need the installer anymore.
3. Remove some other unused code.
2023-09-25 14:12:11 -07:00

98 lines
3.2 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: '18.x'
- task: DownloadPipelineArtifact@2
inputs:
patterns: 'Release_*/**/*'
path: $(Pipeline.Workspace)/artifacts
displayName: 'Download WebAssembly artifacts'
- task: CopyFiles@2
inputs:
sourceFolder: $(Pipeline.Workspace)/artifacts
contents: |
**/*.wasm
targetFolder: $(Build.SourcesDirectory)/js/web/dist
flattenFolders: true
displayName: 'Binplace dist files'
- task: CopyFiles@2
inputs:
sourceFolder: $(Pipeline.Workspace)/artifacts
contents: |
**/*.js
targetFolder: $(Build.SourcesDirectory)/js/web/lib/wasm/binding
flattenFolders: true
displayName: 'Binplace js 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 --env=bs --wasm-init-timeout=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 --env=bs --wasm-init-timeout=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()