Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,8 @@

<!-- arm64 -->
<None Include="$(MSBuildThisFileDirectory)..\..\runtimes\win-arm64\native\onnxruntime.dll"
Condition="'$(PlatformTarget)' == 'ARM64'">
Condition="'$(PlatformTarget)' == 'ARM64' AND
Exists('$(MSBuildThisFileDirectory)..\..\runtimes\win-arm64\native\onnxruntime.dll')">
<Link>onnxruntime.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>false</Visible>
Expand All @@ -128,7 +129,8 @@

<!-- arm -->
<None Include="$(MSBuildThisFileDirectory)..\..\runtimes\win-arm\native\onnxruntime.dll"
Condition="'$(PlatformTarget)' == 'ARM'">
Condition="'$(PlatformTarget)' == 'ARM' AND
Exists('$(MSBuildThisFileDirectory)..\..\runtimes\win-arm\native\onnxruntime.dll')">
<Link>onnxruntime.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>false</Visible>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,6 @@ parameters:
type: number
default: 0

- name: PackageName
displayName: What is the package name? Override using an environment variable CustomPackageName.
type: string
default: 'Microsoft.ML.OnnxRuntime.Foundry'

variables:
- template: templates/common-variables.yml
- name: ReleaseVersionSuffix
Expand Down Expand Up @@ -121,7 +116,7 @@ extends:
buildArch: x64
msbuildPlatform: arm64
packageName: arm64
buildparameter: --arm64ec --buildasx --caller_framework WinAI
buildparameter: --arm64 --buildasx --caller_framework WinAI
runTests: false
buildJava: false
buildNodejs: false
Expand All @@ -137,141 +132,8 @@ extends:
AdditionalBuildFlags: '--use_webgpu --skip_tests'
DoEsrp: true

- stage: NugetPackaging
dependsOn: [Windows_Packaging_CUDA, Windows_Packaging_CPU_arm64, ManagedNugetPackaging, MacOS_C_API_Package_Publish]
jobs:
- job: CreateNugetPackage
pool: 'Onnxruntime-Win2022-GPU-A10'
timeoutInMinutes: 120
steps:
- checkout: self
clean: true
submodules: none

- task: UsePythonVersion@0
inputs:
versionSpec: '3.12'
addToPath: true
- task: PipAuthenticate@1
displayName: 'Pip Authenticate'
inputs:
artifactFeeds: 'Lotus'

- task: DownloadPipelineArtifact@0
displayName: 'Download Pipeline Artifact - managed nuget'
inputs:
artifactName: 'onnxruntime-managed-nuget'
targetPath: '$(Build.BinariesDirectory)/managed-nuget'

- task: DownloadPipelineArtifact@0
displayName: 'Download Pipeline Artifact - win-x64'
inputs:
artifactName: 'onnxruntime-win-x64-cuda'
targetPath: '$(Build.BinariesDirectory)/win-x64'

- task: DownloadPipelineArtifact@0
displayName: 'Download Pipeline Artifact - win-arm64'
inputs:
artifactName: 'onnxruntime-win-arm64'
targetPath: '$(Build.BinariesDirectory)/win-arm64'

- task: DownloadPipelineArtifact@0
displayName: 'Download Pipeline Artifact - osx'
inputs:
artifactName: 'onnxruntime-osx'
targetPath: '$(Build.BinariesDirectory)/osx'

- task: PowerShell@2
displayName: 'Create osx directories'
inputs:
targetType: 'inline'
script: |
mkdir -p $(Build.BinariesDirectory)/osx-arm64
Move-Item -Path $(Build.BinariesDirectory)/osx/onnxruntime-osx-arm64* -Destination $(Build.BinariesDirectory)/osx-arm64

- task: PowerShell@2
displayName: 'List all files downloaded'
inputs:
targetType: 'inline'
script: |
$files = Get-ChildItem $(Build.BinariesDirectory) -Recurse
foreach ($file in $files) {
Write-Host "File: $($file.FullName)"
if ($file -like "*onnxruntime*") {
Write-Host "File onnxruntime: $($file.FullName) - Size: $($file.Length)"
}
}
$dirs = Get-ChildItem $(Build.BinariesDirectory) -Directory
foreach ($dir in $dirs) {
Write-Host "Directory: $($dir.FullName)"
}
$osx_arm64_archive = Get-ChildItem -Path $(Build.BinariesDirectory)/osx-arm64 -Filter onnxruntime-osx-arm64*
if ($osx_arm64_archive.Count -eq 0) {
Write-Host "No osx-arm64 archive found."
} else {
Write-Host "osx-arm64 archive found: $($osx_arm64_archive[0].FullName)"
}
workingDirectory: $(Build.BinariesDirectory)

- task: PowerShell@2
displayName: 'Extract Nuget Package Version'
inputs:
targetType: 'inline'
script: |
$nupkgs = (Get-ChildItem $(Build.BinariesDirectory)/managed-nuget -Filter Microsoft.ML.OnnxRuntime.Managed.*.nupkg -Recurse)
$package_name = $nupkgs[0].Name
$version_length = $package_name.Length - "Microsoft.ML.OnnxRuntime.Managed.".Length - ".nupkg".Length
$package_version = $package_name.Substring("Microsoft.ML.OnnxRuntime.Managed.".Length, $version_length)
Write-Host "##vso[task.setvariable variable=package_version;]$package_version"
workingDirectory: $(Build.BinariesDirectory)

- task: PowerShell@2
displayName: 'Extract Archives'
inputs:
targetType: 'inline'
script: |
Expand-Archive -Path $(Build.BinariesDirectory)/win-x64/onnxruntime-win-x64-cuda*.zip -DestinationPath $(Build.BinariesDirectory)/win-x64
Expand-Archive -Path $(Build.BinariesDirectory)/win-arm64/onnxruntime-win-arm64*.zip -DestinationPath $(Build.BinariesDirectory)/win-arm64
$osx_arm64_archive = (Get-ChildItem -Path $(Build.BinariesDirectory)/osx-arm64 -Filter onnxruntime-osx-arm64*)[0].FullName
tar -xzf $osx_arm64_archive -C $(Build.BinariesDirectory)/osx-arm64 2>$null
$win_x64 = (Get-ChildItem -Path $(Build.BinariesDirectory)/win-x64 -Filter onnxruntime-win-x64-cuda*)[0].FullName
$win_arm64 = (Get-ChildItem -Path $(Build.BinariesDirectory)/win-arm64 -Filter onnxruntime-win-arm64*)[0].FullName
$osx_arm64 = (Get-ChildItem -Path $(Build.BinariesDirectory)/osx-arm64 -Filter onnxruntime-osx-arm64*)[0].FullName
Write-Host "##vso[task.setvariable variable=win_x64;]$win_x64"
Write-Host "##vso[task.setvariable variable=win_arm64;]$win_arm64"
Write-Host "##vso[task.setvariable variable=osx_x64;]$osx_x64"
Write-Host "##vso[task.setvariable variable=osx_arm64;]$osx_arm64"
workingDirectory: $(Build.BinariesDirectory)

- task: PowerShell@2
displayName: 'Get Package Name'
inputs:
targetType: 'inline'
script: |
if ($env:CustomPackageName) {
Write-Host "##vso[task.setvariable variable=PackageName;]$env:CustomPackageName"
Write-Host "PackageName: $env:CustomPackageName"
} else {
Write-Host "##vso[task.setvariable variable=PackageName;]${{ parameters.PackageName }}"
Write-Host "PackageName: ${{ parameters.PackageName }}"
}
workingDirectory: $(Build.BinariesDirectory)

- task: PythonScript@0
displayName: 'Generate Nuget Package'
inputs:
scriptPath: '$(Build.SourcesDirectory)/tools/nuget/generate_nuspec_for_custom_nuget.py'
arguments: '--nuspec_path "$(Build.BinariesDirectory)/${{ parameters.PackageName }}.nuspec" --root_dir "$(Build.SourcesDirectory)" --commit_id "$(Build.SourceVersion)" --win_arm64 "$(win_arm64)" --win_x64 "$(win_x64)" --osx_arm64 "$(osx_arm64)" --osx_x64 "$(osx_x64)" --package_version "$(package_version)" --package_name "$(PackageName)"'

- task: NuGetCommand@2
displayName: 'Pack Nuget Package'
inputs:
command: 'pack'
packagesToPack: '$(Build.BinariesDirectory)/${{ parameters.PackageName }}.nuspec'
packDestination: $(Build.ArtifactStagingDirectory)\

- task: 1ES.PublishPipelineArtifact@1
displayName: 'Publish Artifact: Nuget'
inputs:
artifactName: '${{ parameters.PackageName }}'
targetPath: '$(Build.ArtifactStagingDirectory)'
- template: templates/foundry-local-nuget-packaging.yml
parameters:
DependsOn: [Setup, Windows_Packaging_CUDA, Windows_Packaging_CPU_arm64, ManagedNugetPackaging, MacOS_C_API_Package_Publish]
DoEsrp: true
PackageName: 'Microsoft.ML.OnnxRuntime.Foundry'
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
parameters:
DoEsrp: false
StageName: 'FoundryLocalNugetPackaging'
DependsOn: []
PackageName: 'Microsoft.ML.OnnxRuntime.Foundry'

stages:
- stage: ${{ parameters.StageName }}
dependsOn: ${{ parameters.DependsOn }}
jobs:
- job: ${{ parameters.StageName }}
timeoutInMinutes: 120
pool:
name: 'onnxruntime-Win2022-GPU-A10'
os: windows
templateContext:
sdl:
codeSignValidation:
enabled: true
break: true
psscriptanalyzer:
enabled: true
binskim:
enabled: true
scanOutputDirectoryOnly: true
outputs:
- output: pipelineArtifact
targetPath: $(Build.ArtifactStagingDirectory)
artifactName: "onnxruntime-foundry-nuget"
variables:
DoEsrp: ${{ parameters.DoEsrp }}
ReleaseVersionSuffix: $[stageDependencies.Setup.Set_Variables.outputs['Set_Release_Version_Suffix.ReleaseVersionSuffix']]
BuildDate: $[stageDependencies.Setup.Set_Variables.outputs['Set_Build_Date.BuildDate']]
BuildTime: $[stageDependencies.Setup.Set_Variables.outputs['Set_Build_Time.BuildTime']]

steps:
- task: DownloadPipelineArtifact@0
displayName: 'Download Pipeline Artifact - managed nuget'
inputs:
artifactName: 'onnxruntime-managed-nuget'
targetPath: '$(Build.BinariesDirectory)/managed-nuget'

- task: DownloadPipelineArtifact@0
displayName: 'Download Pipeline Artifact - win-x64'
inputs:
artifactName: 'onnxruntime-win-x64-cuda'
targetPath: '$(Build.BinariesDirectory)/win-x64'

- task: DownloadPipelineArtifact@0
displayName: 'Download Pipeline Artifact - win-arm64'
inputs:
artifactName: 'onnxruntime-win-arm64'
targetPath: '$(Build.BinariesDirectory)/win-arm64'

- task: DownloadPipelineArtifact@0
displayName: 'Download Pipeline Artifact - osx'
inputs:
artifactName: 'onnxruntime-osx'
targetPath: '$(Build.BinariesDirectory)/osx'

- task: UsePythonVersion@0
inputs:
versionSpec: '3.12'
addToPath: true

- task: PipAuthenticate@1
displayName: 'Pip Authenticate'
inputs:
artifactFeeds: 'Lotus'

- task: PowerShell@2
displayName: 'Create osx directories'
inputs:
targetType: 'inline'
script: |
New-Item -ItemType Directory -Force -Path "$(Build.BinariesDirectory)/osx-arm64" | Out-Null
Move-Item -Path $(Build.BinariesDirectory)/osx/onnxruntime-osx-arm64* -Destination $(Build.BinariesDirectory)/osx-arm64

- task: PowerShell@2
displayName: 'List all files downloaded'
inputs:
targetType: 'inline'
script: |
$files = Get-ChildItem $(Build.BinariesDirectory) -Recurse
foreach ($file in $files) {
Write-Host "File: $($file.FullName)"
if ($file -like "*onnxruntime*") {
Write-Host "File onnxruntime: $($file.FullName) - Size: $($file.Length)"
}
}
$dirs = Get-ChildItem $(Build.BinariesDirectory) -Directory
foreach ($dir in $dirs) {
Write-Host "Directory: $($dir.FullName)"
}
$osx_arm64_archive = Get-ChildItem -Path $(Build.BinariesDirectory)/osx-arm64 -Filter onnxruntime-osx-arm64*
if ($osx_arm64_archive.Count -eq 0) {
Write-Host "No osx-arm64 archive found."
} else {
Write-Host "osx-arm64 archive found: $($osx_arm64_archive[0].FullName)"
}
workingDirectory: $(Build.BinariesDirectory)

- task: PowerShell@2
displayName: 'Extract Nuget Package Version'
inputs:
targetType: 'inline'
script: |
$nupkgs = (Get-ChildItem $(Build.BinariesDirectory)/managed-nuget -Filter Microsoft.ML.OnnxRuntime.Managed.*.nupkg -Recurse)
$package_name = $nupkgs[0].Name
$version_length = $package_name.Length - "Microsoft.ML.OnnxRuntime.Managed.".Length - ".nupkg".Length
$package_version = $package_name.Substring("Microsoft.ML.OnnxRuntime.Managed.".Length, $version_length)
Write-Host "##vso[task.setvariable variable=package_version;]$package_version"
workingDirectory: $(Build.BinariesDirectory)

- task: PowerShell@2
displayName: 'Extract Archives'
inputs:
targetType: 'inline'
script: |
Expand-Archive -Path $(Build.BinariesDirectory)/win-x64/onnxruntime-win-x64-cuda*.zip -DestinationPath $(Build.BinariesDirectory)/win-x64
Expand-Archive -Path $(Build.BinariesDirectory)/win-arm64/onnxruntime-win-arm64*.zip -DestinationPath $(Build.BinariesDirectory)/win-arm64
$osx_arm64_archive = (Get-ChildItem -Path $(Build.BinariesDirectory)/osx-arm64 -Filter onnxruntime-osx-arm64*)[0].FullName
tar -xzf $osx_arm64_archive -C $(Build.BinariesDirectory)/osx-arm64 2>$null
$win_x64 = (Get-ChildItem -Path $(Build.BinariesDirectory)/win-x64 -Directory -Filter onnxruntime-win-x64-cuda*)[0].FullName
$win_arm64 = (Get-ChildItem -Path $(Build.BinariesDirectory)/win-arm64 -Directory -Filter onnxruntime-win-arm64*)[0].FullName
$osx_arm64 = (Get-ChildItem -Path $(Build.BinariesDirectory)/osx-arm64 -Directory -Filter onnxruntime-osx-arm64*)[0].FullName
Write-Host "##vso[task.setvariable variable=win_x64;]$win_x64"
Write-Host "##vso[task.setvariable variable=win_arm64;]$win_arm64"
Write-Host "##vso[task.setvariable variable=osx_arm64;]$osx_arm64"
workingDirectory: $(Build.BinariesDirectory)

- task: PythonScript@0
displayName: 'Generate Nuget Package'
inputs:
scriptPath: '$(Build.SourcesDirectory)/tools/nuget/generate_nuspec_for_custom_nuget.py'
arguments: '--nuspec_path "$(Build.BinariesDirectory)/${{ parameters.PackageName }}.nuspec" --root_dir "$(Build.SourcesDirectory)" --commit_id "$(Build.SourceVersion)" --win_arm64 "$(win_arm64)" --win_x64 "$(win_x64)" --osx_arm64 "$(osx_arm64)" --package_version "$(package_version)" --package_name "${{ parameters.PackageName }}"'

- task: NuGetCommand@2
displayName: 'Pack Nuget Package'
inputs:
command: 'pack'
packagesToPack: '$(Build.BinariesDirectory)/${{ parameters.PackageName }}.nuspec'
packDestination: $(Build.ArtifactStagingDirectory)\

- template: esrp_nuget.yml
parameters:
DisplayName: 'ESRP - sign NuGet package'
FolderPath: '$(Build.ArtifactStagingDirectory)'
DoEsrp: ${{ parameters.DoEsrp }}
2 changes: 0 additions & 2 deletions tools/nuget/generate_nuspec_for_custom_nuget.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ def generate_files(lines, args):
platform_map = {
"win-arm64": args.win_arm64,
"win-x64": args.win_x64,
"osx-x64": args.osx_x64,
"osx-arm64": args.osx_arm64,
}

Expand Down Expand Up @@ -116,7 +115,6 @@ def parse_arguments():
parser.add_argument("--win_arm64", required=True, help="Ort win-arm64 directory")
parser.add_argument("--win_x64", required=True, help="Ort win-x64 directory")
parser.add_argument("--osx_arm64", required=True, help="Ort osx-arm64 directory")
parser.add_argument("--osx_x64", required=True, help="Ort osx-x64 directory")
parser.add_argument("--package_version", required=True, help="Version of the package")
parser.add_argument("--package_name", required=True, help="Name of the package")

Expand Down
3 changes: 3 additions & 0 deletions tools/nuget/generate_nuspec_for_native_nuget.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,9 @@ def add_common_dependencies(xml_text, package_name, version):
xml_text.append('<dependency id="Microsoft.ML.OnnxRuntime.Gpu.Windows"' + ' version="' + version + '"/>')
xml_text.append('<dependency id="Microsoft.ML.OnnxRuntime.Gpu.Linux"' + ' version="' + version + '"/>')

if package_name == "Microsoft.ML.OnnxRuntime.Foundry":
xml_text.append('<dependency id="Microsoft.ML.OnnxRuntime.Gpu.Linux"' + ' version="' + version + '"/>')


def generate_dependencies(xml_text, package_name, version):
dml_dependency = '<dependency id="Microsoft.AI.DirectML" version="1.15.4"/>'
Expand Down
Loading