mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-29 20:14:01 +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
149 lines
4.3 KiB
YAML
149 lines
4.3 KiB
YAML
parameters:
|
|
- name: NpmPackagingMode
|
|
displayName: 'NPM packages publish configuration'
|
|
type: string
|
|
default: 'dev'
|
|
- name: IsReleasePipeline
|
|
displayName: 'Npm packaging pipeline'
|
|
type: boolean
|
|
default: false
|
|
- name: PoolName
|
|
displayName: 'Agent pool name'
|
|
type: string
|
|
default: 'onnxruntime-Win-CPU-2022'
|
|
- name: PackageName
|
|
displayName: 'Package name'
|
|
type: string
|
|
default: 'NPM_packages'
|
|
- name: BuildStaticLib
|
|
displayName: 'Build static library'
|
|
type: boolean
|
|
default: false
|
|
- name: BuildJsep
|
|
displayName: 'Build JSEP'
|
|
type: boolean
|
|
default: true
|
|
|
|
- name: WASMTemplate
|
|
type: string
|
|
default: win-wasm-ci.yml
|
|
- name: WebTemplate
|
|
type: string
|
|
default: win-web-ci.yml
|
|
# parameter couldn't be compared by string, so add one boolean parameter.
|
|
- name: UseWebPoolName
|
|
type: boolean
|
|
default: false
|
|
- name: WebPoolName
|
|
type: string
|
|
default: ''
|
|
|
|
- name: ExtraBuildArgs
|
|
displayName: 'Extra build command line arguments'
|
|
type: string
|
|
|
|
|
|
stages:
|
|
- stage: Extract_commit
|
|
jobs:
|
|
- job: Extract_commit
|
|
pool: ${{ parameters.PoolName }}
|
|
variables:
|
|
runCodesignValidationInjection: false
|
|
timeoutInMinutes: 30
|
|
workspace:
|
|
clean: all
|
|
steps:
|
|
- checkout: none
|
|
fetchDepth: 1
|
|
submodules: false
|
|
- task: Bash@3
|
|
inputs:
|
|
targetType: 'inline'
|
|
script: |
|
|
echo $(Build.SourceVersion)
|
|
echo $(Build.SourceVersion) > "$(Build.ArtifactStagingDirectory)"/__commit.txt
|
|
- task: PublishPipelineArtifact@0
|
|
displayName: 'Publish Pipeline Artifact'
|
|
inputs:
|
|
artifactName: '__commit'
|
|
targetPath: '$(Build.ArtifactStagingDirectory)'
|
|
|
|
- stage: Build_wasm_Debug
|
|
dependsOn: Extract_commit
|
|
jobs:
|
|
- template: ${{ parameters.WASMTemplate }}
|
|
parameters:
|
|
CommitOverride: true
|
|
BuildConfig: 'Debug'
|
|
ExtraBuildArgs: '--use_extensions --cmake_extra_defines onnxruntime_WEBASSEMBLY_DEFAULT_EXTENSION_FLAGS=ON ${{ parameters.ExtraBuildArgs }}'
|
|
PoolName: ${{ parameters.PoolName }}
|
|
BuildJsep: ${{ parameters.BuildJsep }}
|
|
|
|
- stage: Build_web_Debug
|
|
dependsOn: Build_wasm_Debug
|
|
jobs:
|
|
- template: ${{ parameters.WebTemplate }}
|
|
parameters:
|
|
CommitOverride: true
|
|
BuildConfig: 'Debug'
|
|
NpmPackagingMode: ${{ parameters.NpmPackagingMode }}
|
|
${{ if eq(parameters.UseWebPoolName, true)}}:
|
|
PoolName: ${{ parameters.WebPoolName }}
|
|
${{ else }}:
|
|
PoolName: ${{ parameters.PoolName }}
|
|
PackageName: ${{ parameters.PackageName }}
|
|
|
|
- stage: Build_wasm_Release
|
|
dependsOn: Extract_commit
|
|
jobs:
|
|
- template: ${{ parameters.WASMTemplate }}
|
|
parameters:
|
|
CommitOverride: true
|
|
BuildConfig: 'Release'
|
|
ExtraBuildArgs: '--target onnxruntime_webassembly --skip_tests --enable_wasm_api_exception_catching --disable_rtti --use_extensions --cmake_extra_defines onnxruntime_WEBASSEMBLY_DEFAULT_EXTENSION_FLAGS=ON ${{ parameters.ExtraBuildArgs }}'
|
|
PoolName: ${{ parameters.PoolName }}
|
|
BuildJsep: ${{ parameters.BuildJsep }}
|
|
|
|
- ${{ if eq(parameters.BuildStaticLib, 'true') }}:
|
|
- stage: Build_wasm_Release_static_library
|
|
dependsOn: Extract_commit
|
|
jobs:
|
|
- template: ${{ parameters.WASMTemplate }}
|
|
parameters:
|
|
CommitOverride: true
|
|
BuildConfig: 'Release'
|
|
ExtraBuildArgs: '${{ parameters.ExtraBuildArgs }}'
|
|
PoolName: ${{ parameters.PoolName }}
|
|
SkipPublish: true
|
|
TimeoutInMinutes: 270
|
|
|
|
- stage: Build_web_Release
|
|
dependsOn: Build_wasm_Release
|
|
jobs:
|
|
- template: ${{ parameters.WebTemplate }}
|
|
parameters:
|
|
CommitOverride: true
|
|
BuildConfig: 'Release'
|
|
NpmPackagingMode: ${{ parameters.NpmPackagingMode }}
|
|
${{ if eq(parameters.UseWebPoolName, true)}}:
|
|
PoolName: ${{ parameters.WebPoolName }}
|
|
${{ else }}:
|
|
PoolName: ${{ parameters.PoolName }}
|
|
PackageName: ${{ parameters.PackageName }}
|
|
|
|
- ${{ if ne(parameters.IsReleasePipeline, true) }}:
|
|
- stage: Test_web_BrowserStack
|
|
dependsOn: Build_wasm_Release
|
|
jobs:
|
|
- template: web-browserstack-ci.yml
|
|
parameters:
|
|
CommitOverride: true
|
|
|
|
- ${{ if ne(parameters.IsReleasePipeline, true) }}:
|
|
- stage: Test_web_MultiBrowsers
|
|
dependsOn: Build_wasm_Release
|
|
jobs:
|
|
- template: win-web-multi-browsers.yml
|
|
parameters:
|
|
CommitOverride: true
|