mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-26 19:52:38 +00:00
### Description 1. Enable Web ci on Linux ### Motivation and Context 1. speed up web ci, the duration can be reduced from 160 minutes to 130 minutes, a time saving of 20% could be be achieved. The total computation time is 455 minutes now. Moved to Linux, it could be reduced to 336 minutes. 2. It's the first step to enable compilation cache for emscripten 3. per Yulong's request, build_web stages are still using windows pool  https://dev.azure.com/onnxruntime/onnxruntime/_build/results?buildId=1038382&view=results
150 lines
6.6 KiB
YAML
150 lines
6.6 KiB
YAML
parameters:
|
|
- name: CommitOverride
|
|
type: boolean
|
|
default: false
|
|
|
|
- name: BuildConfig
|
|
type: string
|
|
default: 'Debug'
|
|
|
|
- name: ExtraBuildArgs
|
|
type: string
|
|
default: ''
|
|
|
|
- name: PoolName
|
|
type: string
|
|
default: 'onnxruntime-Ubuntu2004-AMD-CPU'
|
|
|
|
- name: SkipPublish
|
|
type: boolean
|
|
default: false
|
|
|
|
- name: TimeoutInMinutes
|
|
default: 180
|
|
|
|
- name: BuildJsep
|
|
type: boolean
|
|
default: false
|
|
|
|
jobs:
|
|
- job: build_WASM
|
|
pool:
|
|
name: ${{ parameters.PoolName }}
|
|
variables:
|
|
EnvSetupScript: setup_env.bat
|
|
buildArch: x64
|
|
CommonBuildArgs: '--parallel --config ${{ parameters.BuildConfig }} --skip_submodule_sync --build_wasm --use_xnnpack --emsdk_version releases-7c905cfc1ca6699f6ccb288ae174902cfbdcf0a2-64bit ${{ parameters.ExtraBuildArgs }}'
|
|
runCodesignValidationInjection: false
|
|
timeoutInMinutes: ${{ parameters.TimeoutInMinutes }}
|
|
workspace:
|
|
clean: all
|
|
steps:
|
|
- checkout: self
|
|
- task: DownloadPipelineArtifact@2
|
|
inputs:
|
|
artifact: '__commit'
|
|
path: $(Pipeline.Workspace)
|
|
displayName: 'Get commit SHA'
|
|
condition: eq('${{ parameters.CommitOverride }}', 'true')
|
|
- script: |
|
|
export __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 --recursive
|
|
git submodule update --init --recursive
|
|
workingDirectory: '$(Build.SourcesDirectory)'
|
|
displayName: 'Checkout submodules'
|
|
- task: UsePythonVersion@0
|
|
inputs:
|
|
versionSpec: '3.8'
|
|
addToPath: true
|
|
architecture: $(buildArch)
|
|
- task: NodeTool@0
|
|
inputs:
|
|
versionSpec: '16.x'
|
|
- template: download-deps.yml
|
|
|
|
- task: PythonScript@0
|
|
displayName: 'Update deps.txt'
|
|
inputs:
|
|
scriptPath: $(Build.SourcesDirectory)/tools/ci_build/replace_urls_in_deps.py
|
|
arguments: --new_dir $(Build.BinariesDirectory)/deps
|
|
workingDirectory: $(Build.BinariesDirectory)
|
|
|
|
- task: PythonScript@0
|
|
displayName: 'Build and test (node)'
|
|
inputs:
|
|
scriptPath: '$(Build.SourcesDirectory)/tools/ci_build/build.py'
|
|
arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm'
|
|
workingDirectory: '$(Build.BinariesDirectory)'
|
|
- task: PythonScript@0
|
|
displayName: 'Build and test (node) (threads)'
|
|
inputs:
|
|
scriptPath: '$(Build.SourcesDirectory)/tools/ci_build/build.py'
|
|
arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm_threads --enable_wasm_threads'
|
|
workingDirectory: '$(Build.BinariesDirectory)'
|
|
- task: PythonScript@0
|
|
displayName: 'Build and test (browser) (simd + threads)'
|
|
inputs:
|
|
scriptPath: '$(Build.SourcesDirectory)/tools/ci_build/build.py'
|
|
arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm_simd_threads --enable_wasm_simd --enable_wasm_threads --wasm_run_tests_in_browser'
|
|
workingDirectory: '$(Build.BinariesDirectory)'
|
|
- task: PythonScript@0
|
|
displayName: 'Build and test (node) (simd)'
|
|
inputs:
|
|
scriptPath: '$(Build.SourcesDirectory)/tools/ci_build/build.py'
|
|
arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm_simd --enable_wasm_simd'
|
|
workingDirectory: '$(Build.BinariesDirectory)'
|
|
- ${{ if eq(parameters.BuildJsep, true) }}:
|
|
- task: PythonScript@0
|
|
displayName: 'Build (simd + JSEP)'
|
|
inputs:
|
|
scriptPath: '$(Build.SourcesDirectory)/tools/ci_build/build.py'
|
|
arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm_simd_jsep --enable_wasm_simd --use_jsep --target onnxruntime_webassembly --skip_tests'
|
|
workingDirectory: '$(Build.BinariesDirectory)'
|
|
- ${{ if eq(parameters.BuildJsep, true) }}:
|
|
- task: PythonScript@0
|
|
displayName: 'Build (simd + threads + JSEP)'
|
|
inputs:
|
|
scriptPath: '$(Build.SourcesDirectory)/tools/ci_build/build.py'
|
|
arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm_simd_threads_jsep --enable_wasm_simd --enable_wasm_threads --use_jsep --target onnxruntime_webassembly --skip_tests'
|
|
workingDirectory: '$(Build.BinariesDirectory)'
|
|
- ${{ if eq(parameters.SkipPublish, false) }}:
|
|
- script: |
|
|
cp $(Build.BinariesDirectory)/wasm/${{ parameters.BuildConfig }}/ort-wasm*.* $(Build.ArtifactStagingDirectory)
|
|
cp $(Build.BinariesDirectory)/wasm_threads/${{ parameters.BuildConfig }}/ort-wasm*.* $(Build.ArtifactStagingDirectory)
|
|
cp $(Build.BinariesDirectory)/wasm_simd_threads/${{ parameters.BuildConfig }}/ort-wasm*.* $(Build.ArtifactStagingDirectory)
|
|
cp $(Build.BinariesDirectory)/wasm_simd/${{ parameters.BuildConfig }}/ort-wasm*.* $(Build.ArtifactStagingDirectory)
|
|
if [ -d $(Build.BinariesDirectory)/wasm_simd_jsep ]; then
|
|
cp $(Build.BinariesDirectory)/wasm_simd_jsep/${{ parameters.BuildConfig }}/ort-wasm-simd.wasm $(Build.ArtifactStagingDirectory)/ort-wasm-simd.jsep.wasm
|
|
cp $(Build.BinariesDirectory)/wasm_simd_jsep/${{ parameters.BuildConfig }}/ort-wasm-simd.js $(Build.ArtifactStagingDirectory)/ort-wasm-simd.jsep.js
|
|
fi
|
|
if [ -d $(Build.BinariesDirectory)/wasm_simd_threads_jsep ]; then
|
|
cp $(Build.BinariesDirectory)/wasm_simd_threads_jsep/${{ parameters.BuildConfig }}/ort-wasm-simd-threaded.wasm $(Build.ArtifactStagingDirectory)/ort-wasm-simd-threaded.jsep.wasm
|
|
cp $(Build.BinariesDirectory)/wasm_simd_threads_jsep/${{ parameters.BuildConfig }}/ort-wasm-simd-threaded.js $(Build.ArtifactStagingDirectory)/ort-wasm-simd-threaded.jsep.js
|
|
cp $(Build.BinariesDirectory)/wasm_simd_threads_jsep/${{ parameters.BuildConfig }}/ort-wasm-simd-threaded.worker.js $(Build.ArtifactStagingDirectory)/ort-wasm-simd-threaded.jsep.worker.js
|
|
fi
|
|
displayName: 'Create Artifacts'
|
|
- ${{ if eq(parameters.SkipPublish, false) }}:
|
|
- task: PublishPipelineArtifact@0
|
|
displayName: 'Publish Pipeline Artifact'
|
|
inputs:
|
|
artifactName: '${{ parameters.BuildConfig }}_wasm'
|
|
targetPath: '$(Build.ArtifactStagingDirectory)'
|
|
- task: PublishTestResults@2
|
|
displayName: 'Publish unit test results'
|
|
inputs:
|
|
testResultsFiles: '**/*.results.xml'
|
|
searchFolder: '$(Build.BinariesDirectory)'
|
|
testRunTitle: 'Unit Test Run'
|
|
condition: and(succeededOrFailed(), eq('${{ parameters.BuildConfig }}', 'Debug'))
|
|
- template: component-governance-component-detection-steps.yml
|
|
parameters :
|
|
condition : 'succeeded'
|
|
- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
|
|
displayName: 'Clean Agent Directories'
|
|
condition: always()
|