onnxruntime/tools/ci_build/github/azure-pipelines/win-ci-pipeline.yml

243 lines
7.6 KiB
YAML

##### start trigger Don't edit it manually, Please do edit set-trigger-rules.py ####
### please do rerun set-trigger-rules.py ###
trigger:
branches:
include:
- main
- rel-*
paths:
exclude:
- docs/**
- README.md
- CONTRIBUTING.md
- BUILD.md
- 'js/web'
- 'onnxruntime/core/providers/js'
pr:
branches:
include:
- main
- rel-*
paths:
exclude:
- docs/**
- README.md
- CONTRIBUTING.md
- BUILD.md
- 'js/web'
- 'onnxruntime/core/providers/js'
#### end trigger ####
parameters:
- name: RunOnnxRuntimeTests
displayName: Run Tests?
type: boolean
default: true
stages:
- stage: x64_debug
dependsOn: []
jobs:
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'Debug'
buildArch: x64
additionalBuildFlags: --build_java --build_nodejs --build_wheel --disable_memleak_checker
msbuildPlatform: x64
isX86: false
job_name_suffix: x64_debug
RunOnnxRuntimeTests: ${{ parameters.RunOnnxRuntimeTests }}
isTraining: false
ORT_EP_NAME: CPU
GenerateDocumentation: false
WITH_CACHE: false
MachinePool: 'onnxruntime-Win-CPU-2022'
- job: build_x64_asan
pool: 'onnxruntime-Win-CPU-2022'
timeoutInMinutes: 300
steps:
- checkout: self
clean: true
submodules: none
- template: templates/jobs/win-ci-prebuild-steps.yml
parameters:
EnvSetupScript: setup_env.bat
DownloadCUDA: false
BuildArch: x64
BuildConfig: Debug
MachinePool: 'onnxruntime-Win-CPU-2022'
WithCache: false
InstallONNX: false
Today: $(TODAY)
- task: PythonScript@0
displayName: 'Build and Test'
inputs:
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
arguments: --config Debug --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --use_binskim_compliant_compile_flags --cmake_generator "Visual Studio 17 2022" --disable_memleak_checker --enable_address_sanitizer
workingDirectory: '$(Build.BinariesDirectory)'
- stage: x64_release
dependsOn: []
jobs:
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'RelWithDebInfo'
buildArch: x64
# Compare to our Nuget packaging pipeline, this job has "--build_wheel" but doesn't have "--enable_lto --disable_rtti --use_telemetry --enable_wcos"
# Python bindings use typeid so I can't disable RTTI here. If it causes a problem, we will need to split this job to two jobs.
additionalBuildFlags: --build_wheel --build_java --build_nodejs
msbuildPlatform: x64
isX86: false
job_name_suffix: x64_release
RunOnnxRuntimeTests: ${{ parameters.RunOnnxRuntimeTests }}
isTraining: false
ORT_EP_NAME: CPU
GenerateDocumentation: false
WITH_CACHE: false
MachinePool: 'onnxruntime-Win-CPU-2022'
- stage: x64_release_dnnl
dependsOn: []
jobs:
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'RelWithDebInfo'
buildArch: x64
additionalBuildFlags: --build_wheel --use_dnnl --build_java
msbuildPlatform: x64
isX86: false
job_name_suffix: x64_release
RunOnnxRuntimeTests: ${{ parameters.RunOnnxRuntimeTests }}
isTraining: false
ORT_EP_NAME: DNNL
GenerateDocumentation: false
WITH_CACHE: false
# Intel EPs require Intel CPUs
MachinePool: 'onnxruntime-Win2022-Intel-CPU'
# Tests doesn't work on AMD CPUs
- stage: x64_release_xnnpack
dependsOn: []
jobs:
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'RelWithDebInfo'
buildArch: x64
additionalBuildFlags: --build_wheel --use_xnnpack
msbuildPlatform: x64
isX86: false
job_name_suffix: x64_release
RunOnnxRuntimeTests: true
isTraining: false
ORT_EP_NAME: XNNPACK
GenerateDocumentation: false
WITH_CACHE: false
MachinePool: 'onnxruntime-Win-CPU-2022'
# Build only. Does not run any tests.
- stage: x64_release_vitisai
dependsOn: []
jobs:
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'RelWithDebInfo'
buildArch: x64
additionalBuildFlags: --build_wheel --use_vitisai
msbuildPlatform: x64
isX86: false
job_name_suffix: x64_release
RunOnnxRuntimeTests: false
isTraining: false
ORT_EP_NAME: VITISAI
GenerateDocumentation: false
WITH_CACHE: false
MachinePool: 'onnxruntime-Win-CPU-2022'
- stage: x64_release_winml
dependsOn: []
jobs:
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'RelWithDebInfo'
buildArch: x64
additionalBuildFlags: --use_winml --enable_wcos --disable_rtti --cmake_extra_defines CMAKE_SYSTEM_VERSION=10.0.22000.0
msbuildPlatform: x64
isX86: false
job_name_suffix: x64_release_winml
RunOnnxRuntimeTests: ${{ parameters.RunOnnxRuntimeTests }}
# WinML has many warnings
EnablePython: false
isTraining: false
ORT_EP_NAME: CPU
GenerateDocumentation: false
WITH_CACHE: false
MachinePool: 'onnxruntime-Win-CPU-2022'
- stage: x86_release
dependsOn: []
jobs:
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'RelWithDebInfo'
EnvSetupScript: setup_env_x86.bat
buildArch: x86
additionalBuildFlags: --build_wheel
msbuildPlatform: Win32
isX86: true
job_name_suffix: x86_release
RunOnnxRuntimeTests: ${{ parameters.RunOnnxRuntimeTests }}
isTraining: false
ORT_EP_NAME: CPU
GenerateDocumentation: false
WITH_CACHE: false
MachinePool: 'onnxruntime-Win-CPU-2022'
- stage: ort_training_apis_x64_release
dependsOn: []
jobs:
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'RelWithDebInfo'
buildArch: x64
additionalBuildFlags: --enable_training_apis
msbuildPlatform: x64
isX86: false
job_name_suffix: ort_training_apis_x64_release
RunOnnxRuntimeTests: ${{ parameters.RunOnnxRuntimeTests }}
EnablePython: false
isTraining: true
ORT_EP_NAME: CPU
GenerateDocumentation: false
WITH_CACHE: false
MachinePool: 'onnxruntime-Win2022-CPU-training-AMD'
- stage: x64_release_azure
dependsOn: []
jobs:
- job: x64_release_azure
steps:
- powershell: |
Write-Host "##vso[task.prependpath]$(Build.BinariesDirectory)\RelWithDebInfo\_deps\vcpkg-src\installed\x86-windows\bin"
$env:PATH
Write-Host "##vso[task.prependpath]$(Build.BinariesDirectory)\RelWithDebInfo\_deps\vcpkg-src\installed\x64-windows\bin"
$env:PATH
displayName: 'Append x64-windows and x86-windows to PATH'
- template: templates/jobs/win-ci-vs-2022-job.yml
parameters:
BuildConfig: 'RelWithDebInfo'
buildArch: x64
additionalBuildFlags: --use_azure --use_lock_free_queue
msbuildPlatform: x64
isX86: false
job_name_suffix: x64_release_azure
RunOnnxRuntimeTests: ${{ parameters.RunOnnxRuntimeTests }}
EnablePython: false
isTraining: false
ORT_EP_NAME: CPU
GenerateDocumentation: false
WITH_CACHE: false
MachinePool: 'onnxruntime-Win-CPU-2022'