mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-14 20:48:00 +00:00
Reverts microsoft/onnxruntime#21421 Users are seeing chrome memory grow to 16GB before it crashes: https://github.com/microsoft/onnxruntime/issues/21810 Revert for now so we have time to debug.
173 lines
6.8 KiB
YAML
173 lines
6.8 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-Ubuntu2204-AMD-CPU'
|
|
|
|
- name: SkipPublish
|
|
type: boolean
|
|
default: false
|
|
|
|
- name: TimeoutInMinutes
|
|
default: 180
|
|
|
|
- name: BuildJsep
|
|
type: boolean
|
|
default: false
|
|
|
|
# In fact, it's only used on Linux for compiler cache.
|
|
- name: BuildStaticLib
|
|
type: boolean
|
|
default: false
|
|
|
|
- name: BuildTraining
|
|
type: boolean
|
|
default: true
|
|
|
|
- name: WithCache
|
|
type: boolean
|
|
default: false
|
|
|
|
jobs:
|
|
- job: build_WASM
|
|
pool:
|
|
name: ${{ parameters.PoolName }}
|
|
variables:
|
|
buildArch: x64
|
|
CommonBuildArgs: '--parallel --config ${{ parameters.BuildConfig }} --skip_submodule_sync --build_wasm --enable_wasm_simd --enable_wasm_threads --use_extensions --cmake_extra_defines onnxruntime_WEBASSEMBLY_DEFAULT_EXTENSION_FLAGS=ON ${{ parameters.ExtraBuildArgs }}'
|
|
runCodesignValidationInjection: false
|
|
TODAY: $[format('{0:dd}{0:MM}{0:yyyy}', pipeline.startTime)]
|
|
ORT_CACHE_DIR: $(Agent.TempDirectory)/ort_ccache
|
|
timeoutInMinutes: ${{ parameters.TimeoutInMinutes }}
|
|
workspace:
|
|
clean: all
|
|
steps:
|
|
- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
|
|
displayName: 'Clean Agent Directories'
|
|
condition: always()
|
|
- 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)
|
|
- 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)
|
|
|
|
- ${{if eq(parameters.WithCache, true)}}:
|
|
- script: |
|
|
set -ex
|
|
cd '$(Build.SourcesDirectory)/cmake/external/emsdk'
|
|
./emsdk install 3.1.59 ccache-git-emscripten-64bit
|
|
./emsdk activate 3.1.59 ccache-git-emscripten-64bit
|
|
displayName: 'emsdk install and activate ccache for emscripten'
|
|
- ${{if eq(parameters.WithCache, false)}}:
|
|
- script: |
|
|
set -ex
|
|
cd '$(Build.SourcesDirectory)/cmake/external/emsdk'
|
|
./emsdk install 3.1.59
|
|
./emsdk activate 3.1.59
|
|
displayName: 'emsdk install and activate ccache for emscripten'
|
|
|
|
- template: build-linux-wasm-step.yml
|
|
parameters:
|
|
Today: $(Today)
|
|
${{ if eq(parameters.BuildStaticLib, true)}}:
|
|
AdditionalKey: wasm_inferencing | ${{ parameters.BuildConfig }} | static
|
|
${{ else }}:
|
|
AdditionalKey: wasm_inferencing | ${{ parameters.BuildConfig }}
|
|
CacheDir: $(ORT_CACHE_DIR)/wasm_inferencing
|
|
Arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm_inferencing --wasm_run_tests_in_browser'
|
|
DisplayName: 'Build and test (browser) (simd + threads)'
|
|
WithCache: ${{ parameters.WithCache }}
|
|
|
|
- ${{ if eq(parameters.BuildTraining, true) }}:
|
|
- template: build-linux-wasm-step.yml
|
|
parameters:
|
|
Today: $(Today)
|
|
${{ if eq(parameters.BuildStaticLib, true)}}:
|
|
AdditionalKey: wasm_training | ${{ parameters.BuildConfig }} | static
|
|
${{ else }}:
|
|
AdditionalKey: wasm_training | ${{ parameters.BuildConfig }}
|
|
CacheDir: $(ORT_CACHE_DIR)/wasm_training
|
|
Arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm_training --enable_training_apis --target onnxruntime_webassembly --skip_tests'
|
|
DisplayName: 'Build (training + simd + threads)'
|
|
WithCache: ${{ parameters.WithCache }}
|
|
|
|
- ${{ if eq(parameters.BuildJsep, true) }}:
|
|
- template: build-linux-wasm-step.yml
|
|
parameters:
|
|
Today: $(Today)
|
|
${{ if eq(parameters.BuildStaticLib, true)}}:
|
|
AdditionalKey: wasm_inferencing_jsep | ${{ parameters.BuildConfig }} | static
|
|
${{ else }}:
|
|
AdditionalKey: wasm_inferencing_jsep | ${{ parameters.BuildConfig }}
|
|
CacheDir: $(ORT_CACHE_DIR)/wasm_inferencing_jsep
|
|
Arguments: '$(CommonBuildArgs) --build_dir $(Build.BinariesDirectory)/wasm_inferencing_jsep --use_jsep --use_webnn --target onnxruntime_webassembly --skip_tests'
|
|
DisplayName: 'Build (simd + threads + JSEP)'
|
|
WithCache: ${{ parameters.WithCache }}
|
|
|
|
- ${{ if eq(parameters.SkipPublish, false) }}:
|
|
- script: |
|
|
cp $(Build.BinariesDirectory)/wasm_inferencing/${{ parameters.BuildConfig }}/ort-wasm-simd-threaded.wasm $(Build.ArtifactStagingDirectory)
|
|
cp $(Build.BinariesDirectory)/wasm_inferencing/${{ parameters.BuildConfig }}/ort-wasm-simd-threaded.mjs $(Build.ArtifactStagingDirectory)
|
|
if [ -d $(Build.BinariesDirectory)/wasm_inferencing_jsep ]; then
|
|
cp $(Build.BinariesDirectory)/wasm_inferencing_jsep/${{ parameters.BuildConfig }}/ort-wasm-simd-threaded.jsep.wasm $(Build.ArtifactStagingDirectory)
|
|
cp $(Build.BinariesDirectory)/wasm_inferencing_jsep/${{ parameters.BuildConfig }}/ort-wasm-simd-threaded.jsep.mjs $(Build.ArtifactStagingDirectory)
|
|
fi
|
|
if [ -d $(Build.BinariesDirectory)/wasm_training ]; then
|
|
cp $(Build.BinariesDirectory)/wasm_training/${{ parameters.BuildConfig }}/ort-training-wasm-simd-threaded.wasm $(Build.ArtifactStagingDirectory)
|
|
cp $(Build.BinariesDirectory)/wasm_training/${{ parameters.BuildConfig }}/ort-training-wasm-simd-threaded.mjs $(Build.ArtifactStagingDirectory)
|
|
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'
|