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()