onnxruntime/tools/ci_build/github/azure-pipelines/templates/win-web-multi-browsers.yml

100 lines
4 KiB
YAML

parameters:
- name: CommitOverride
type: boolean
default: false
jobs:
- job: build_onnxruntime_web_windows
pool:
vmImage: windows-2019
timeoutInMinutes: 60
continueOnError: true
workspace:
clean: all
steps:
- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
displayName: 'Clean Agent Directories'
condition: always()
- checkout: self
submodules: false
- task: DownloadPipelineArtifact@2
inputs:
artifact: '__commit'
path: $(Pipeline.Workspace)
displayName: 'Get commit SHA'
condition: eq('${{ parameters.CommitOverride }}', 'true')
- script: |
set /p __commit__=<$(Pipeline.Workspace)\__commit.txt
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')
- script: |
git submodule sync -- cmake\external\onnx
git submodule update --init -- cmake\external\onnx
workingDirectory: '$(Build.SourcesDirectory)'
displayName: 'Checkout submodule onnx'
- 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: Cache@2
inputs:
key: onnxtestdata | $(Build.SourcesDirectory)\js\scripts\prepare-onnx-node-tests.ts
restoreKeys: |
onnxtestdata | $(Build.SourcesDirectory)\js\scripts\prepare-onnx-node-tests.ts
path: $(Build.SourcesDirectory)/js/test/
cacheHitVar: CACHE_RESTORED
displayName: 'Cache ONNX node test data'
- script: |
powershell "Get-WmiObject Win32_Process -Filter \"name = 'chrome.exe'\" | Format-List CommandLine"
displayName: 'Check active Chrome processes (before test)'
condition: and(succeeded(), eq(variables['Agent.Diagnostic'], 'true'))
- script: |
mkdir $(Agent.TempDirectory)\web\test_multi_browsers\01
npm test -- suite0 -e=chrome -b=wasm,webgl --wasm.initTimeout=30000 --file-cache --user-data-dir=$(Agent.TempDirectory)\web\test_multi_browsers\01
workingDirectory: '$(Build.SourcesDirectory)\js\web'
displayName: 'npm test (Suite0, Chrome)'
- script: |
powershell "Get-WmiObject Win32_Process -Filter \"name = 'firefox.exe'\" | Format-List CommandLine"
displayName: 'Check active Firefox processes (before test)'
condition: and(succeeded(), eq(variables['Agent.Diagnostic'], 'true'))
- script: |
mkdir $(Agent.TempDirectory)\web\test_multi_browsers\02
npm test -- suite0 -b=wasm,webgl -e=firefox --wasm.initTimeout=30000 --file-cache --user-data-dir=$(Agent.TempDirectory)\web\test_multi_browsers\02
workingDirectory: '$(Build.SourcesDirectory)\js\web'
displayName: 'npm test (Suite0, Firefox)'
- script: |
powershell "Get-WmiObject Win32_Process -Filter \"name = 'msedge.exe'\" | Format-List CommandLine"
displayName: 'Check active Edge processes (before test)'
condition: and(succeeded(), eq(variables['Agent.Diagnostic'], 'true'))
- script: |
mkdir $(Agent.TempDirectory)\web\test_multi_browsers\03
npm test -- suite0 -b=wasm,webgl -e=edge --wasm.initTimeout=30000 --file-cache --user-data-dir=$(Agent.TempDirectory)\web\test_multi_browsers\03
workingDirectory: '$(Build.SourcesDirectory)\js\web'
displayName: 'npm test (Suite0, Edge)'