Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
5b8550c
[build] disable CodeQL for NPM Packaging Pipeline (#25614)
fs-eire Aug 1, 2025
d94f19c
Refactor Java Test Pipeline (#25608)
snnn Jul 31, 2025
2769b01
[build] upgrade Node.js for NPM packaging pipeline (#25568)
fs-eire Jul 29, 2025
de8c7fe
[webgpu] Apply Flash Attention if sliding window exceeds KV cache len…
daijh Aug 1, 2025
879b798
Relax WeightBiasQuantization constraint for larger QDQ node group (#2…
qti-yuduo Aug 14, 2025
9ba9258
Add cuda graph implementation for NV TRT RTX EP (#25787)
umangb-09 Aug 27, 2025
4d8d79e
python GPU IO Bindings for NVIDIA (#25776)
ishwar-raut1 Aug 28, 2025
118ebc4
Fixes for DynamicQuantizeMatMul and Attention3D tests (#25814)
JonathanC-ARM Aug 28, 2025
bc58268
Fix a long standing bug on file memory mapping on windows. (#25833)
yuslepukhin Aug 27, 2025
3a05461
Add API for precompiled model compatibility check using just the comp…
adrastogi Aug 27, 2025
34b3c54
Enable ABSL_FLAGS flag registration for onnxruntime_perf_test for mob…
chilo-ms Aug 26, 2025
19659e6
Add default constructor to Ort::Status. (#25860)
yuslepukhin Aug 27, 2025
f3464aa
update
snnn Aug 29, 2025
1a743ae
Merge branch 'users/snnn/rel-1.23.0' of https://github.com/microsoft/…
snnn Aug 29, 2025
32ea3f5
[CPU] Optimize GQA attention bias application for FP16 (#25871)
derdeljan-msft Aug 28, 2025
6615173
Language bindings for model compatibility API (#25878)
adrastogi Aug 29, 2025
e5d790e
[OVEP] OpenVINO EP Features and bug-fixes for ORT-1.23 (#25884)
preetha-intel Aug 29, 2025
0e74bb9
[EP ABI] Add OpAttr_GetTensorAttributeAsOrtValue and replace the exis…
chilo-ms Aug 29, 2025
6a9ddb6
Add error handling to extract_nuget_files.ps1 (#25866)
snnn Aug 29, 2025
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
Prev Previous commit
Add error handling to extract_nuget_files.ps1 (#25866)
### Description
1. Check process exit code when running 7z.exe . Currently the errors
were silently ignored.
2. Add snld20 flag to the 7z.exe commands, which is needed to be
compatible with the latest 7z release.
  • Loading branch information
snnn committed Aug 29, 2025
commit 6a9ddb61e07c7f5f3e6e69c681500dfd97a55d5f
148 changes: 81 additions & 67 deletions tools/ci_build/github/windows/extract_nuget_files.ps1
Original file line number Diff line number Diff line change
@@ -1,105 +1,119 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

# This file is used by Zip-Nuget Packaging NoContribOps Pipeline,Zip-Nuget-Java Packaging Pipeline
# This file is used by Zip-Nuget-Java Packaging Pipeline

# Re-construct a build directory that contains binaries from all the different platforms we're including
# in the native ORT nuget package
# Define the directory for NuGet artifacts.
$nuget_artifacts_dir = "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts"
New-Item -Path $nuget_artifacts_dir -ItemType directory
# Create the directory if it doesn't exist.
New-Item -Path $nuget_artifacts_dir -ItemType directory -ErrorAction SilentlyContinue

## .zip files
# unzip directly
# exclude the iOS xcframework as we need to leave that zipped up to preserve symlinks
Get-ChildItem -Path $Env:BUILD_BINARIESDIRECTORY\nuget-artifact\* -Include *.zip -Exclude onnxruntime_ios_xcframework.*.zip |
# Unzip files directly, excluding the iOS xcframework to preserve its symlinks.
Get-ChildItem -Path "$Env:BUILD_BINARIESDIRECTORY\nuget-artifact\*" -Include *.zip -Exclude onnxruntime_ios_xcframework.*.zip |
Foreach-Object {
$cmd = "7z.exe x $($_.FullName) -y -o$nuget_artifacts_dir"
Write-Output $cmd
Invoke-Expression -Command $cmd
# The -snld20 flag is used to bypass security checks for creating symbolic links (added in 7-Zip 25.01).
$arguments = "x", "$($_.FullName)", "-y", "-o$nuget_artifacts_dir", "-snld20"
Write-Output "Executing: 7z.exe $arguments"
# Directly call 7z.exe using the call operator '&'
& 7z.exe $arguments
# Check the exit code of the last command. A non-zero code indicates an error.
if ($LASTEXITCODE -ne 0) {
throw "Error extracting '$($_.FullName)'. Exit code: $LASTEXITCODE"
}
}

## .tgz files
# first extract the tar file from the tgz
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter *.tgz |
# First, extract the .tar file from the .tgz archive.
Get-ChildItem "$Env:BUILD_BINARIESDIRECTORY\nuget-artifact" -Filter *.tgz |
Foreach-Object {
$cmd = "7z.exe x $($_.FullName) -y -o$Env:BUILD_BINARIESDIRECTORY\nuget-artifact"
Write-Output $cmd
Invoke-Expression -Command $cmd
# The -snld20 flag is used to bypass security checks for creating symbolic links (added in 7-Zip 25.01).
$arguments = "x", "$($_.FullName)", "-y", "-o$Env:BUILD_BINARIESDIRECTORY\nuget-artifact", "-snld20"
Write-Output "Executing: 7z.exe $arguments"
& 7z.exe $arguments
if ($LASTEXITCODE -ne 0) {
throw "Error extracting '$($_.FullName)'. Exit code: $LASTEXITCODE"
}
}

# now extract the actual folder structure from the tar file to the build dir
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter *.tar |
# Now, extract the contents from the .tar file into the final directory.
Get-ChildItem "$Env:BUILD_BINARIESDIRECTORY\nuget-artifact" -Filter *.tar |
Foreach-Object {
$cmd = "7z.exe x $($_.FullName) -y -o$nuget_artifacts_dir"
Write-Output $cmd
Invoke-Expression -Command $cmd
# The -snld20 flag is used to bypass security checks for creating symbolic links (added in 7-Zip 25.01).
$arguments = "x", "$($_.FullName)", "-y", "-o$nuget_artifacts_dir", "-snld20"
Write-Output "Executing: 7z.exe $arguments"
& 7z.exe $arguments
if ($LASTEXITCODE -ne 0) {
throw "Error extracting '$($_.FullName)'. Exit code: $LASTEXITCODE"
}
}

# process iOS xcframework
$xcframeworks = Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter onnxruntime_ios_xcframework.*.zip
# Process iOS xcframework
$xcframeworks = Get-ChildItem "$Env:BUILD_BINARIESDIRECTORY\nuget-artifact" -Filter onnxruntime_ios_xcframework.*.zip
if ($xcframeworks.Count -eq 1) {
$xcframework = $xcframeworks[0]
$target_dir = "$nuget_artifacts_dir\onnxruntime-ios-xcframework"
# remove version info from filename and use required filename format
$target_file = "$target_dir\onnxruntime.xcframework.zip"
New-Item -Path $target_dir -ItemType directory
$xcframework = $xcframeworks[0]
$target_dir = "$nuget_artifacts_dir\onnxruntime-ios-xcframework"
# Use the required filename format, removing version info.
$target_file = "$target_dir\onnxruntime.xcframework.zip"
New-Item -Path $target_dir -ItemType directory -ErrorAction SilentlyContinue

Write-Output "Copy-Item $($xcframework.FullName) $target_file"
Copy-Item $xcframework.FullName $target_file
Write-Output "Copying $($xcframework.FullName) to $target_file"
Copy-Item $xcframework.FullName $target_file
}
elseif ($xcframeworks.Count -gt 1) {
Write-Error "Expected at most one onnxruntime_ios_xcframework*.zip file but got: [$xcframeworks]"
Write-Error "Expected at most one onnxruntime_ios_xcframework*.zip file but got: [$xcframeworks]"
}


# copy android AAR.
# for full build of onnxruntime Android AAR, there should only be one .aar file
# called onnxruntime-android-x.y.z.aar or onnxruntime-training-android-x.y.z.aar but sanity check that
$aars = Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter *.aar
# Copy Android AAR file.
# There should only be one .aar file for a full build.
$aars = Get-ChildItem "$Env:BUILD_BINARIESDIRECTORY\nuget-artifact" -Filter *.aar
if ($aars.Count -eq 1) {
$aar = $aars[0]
$aar_prefix = "onnxruntime"
if ($aar -like "onnxruntime-training*") {
$aar_prefix = "onnxruntime-training"
}
$target_dir = "$nuget_artifacts_dir\$aar_prefix-android-aar"
$target_file = "$target_dir\onnxruntime.aar" # remove '-mobile' and version info from filename
New-Item -Path $target_dir -ItemType directory
$aar = $aars[0]
$aar_prefix = "onnxruntime"
if ($aar.Name -like "onnxruntime-training*") {
$aar_prefix = "onnxruntime-training"
}
$target_dir = "$nuget_artifacts_dir\$aar_prefix-android-aar"
# Remove version info from the filename for consistency.
$target_file = "$target_dir\onnxruntime.aar"
New-Item -Path $target_dir -ItemType directory -ErrorAction SilentlyContinue

Write-Output "Copy-Item $($aar.FullName) $target_file"
Copy-Item $aar.FullName $target_file
Write-Output "Copying $($aar.FullName) to $target_file"
Copy-Item $aar.FullName $target_file
}
elseif ($aars.Count -gt 1) {
Write-Error "Expected at most one Android .aar file but got: [$aars]"
Write-Error "Expected at most one Android .aar file but got: [$aars]"
}

# Check whether this is a training pipeline
$is_training_pipeline = $false
if (Test-Path -Path $nuget_artifacts_dir\onnxruntime-training-win-x64-*) {
$is_training_pipeline = $true
Write-Output "onnxruntime-training-win-x64-* dir exists. This is a training pipeline."
# Check if this is a training pipeline by looking for a specific directory.
$is_training_pipeline = Test-Path -Path "$nuget_artifacts_dir\onnxruntime-training-win-x64-*"
if ($is_training_pipeline) {
Write-Output "onnxruntime-training-win-x64-* dir exists. This is a training pipeline."
}

# Copy onnxruntime and protoc binaries to the binaries dir as these are required
# by Microsoft.ML.OnnxRuntime.Tests.NetCoreApp
# Copy onnxruntime and protoc binaries required by tests.
$destinationDir = "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo"
if ($is_training_pipeline) {
Copy-Item -Path $nuget_artifacts_dir\onnxruntime-training-win-x64-*\lib\* -Destination $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo
Copy-Item -Path "$nuget_artifacts_dir\onnxruntime-training-win-x64-*\lib\*" -Destination $destinationDir -Recurse
}
else {
Copy-Item -Path $nuget_artifacts_dir\onnxruntime-win-x64-*\lib\* -Destination $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo
Copy-Item -Path "$nuget_artifacts_dir\onnxruntime-win-x64-*\lib\*" -Destination $destinationDir -Recurse
}

"Get-ChildItem -Directory -Path $nuget_artifacts_dir\onnxruntime-*"
$ort_dirs = Get-ChildItem -Directory -Path $nuget_artifacts_dir\onnxruntime-*
foreach ($ort_dir in $ort_dirs)
{
# remove the last '-xxx' segment from the dir name. typically that's the architecture.
$dirname = Split-Path -Path $ort_dir -Leaf
$dirname = $dirname.SubString(0,$dirname.LastIndexOf('-'))
Write-Output "Renaming $ort_dir to $dirname"
Rename-Item -Path $ort_dir -NewName $nuget_artifacts_dir\$dirname
# Rename directories to remove the architecture-specific suffix.
Write-Output "Renaming onnxruntime directories..."
Get-ChildItem -Directory -Path "$nuget_artifacts_dir\onnxruntime-*" | ForEach-Object {
$dirname = $_.Name
# Find the last hyphen and remove the suffix.
$lastHyphenIndex = $dirname.LastIndexOf('-')
if ($lastHyphenIndex -gt -1) {
$newName = $dirname.Substring(0, $lastHyphenIndex)
$newPath = Join-Path -Path $_.Parent.FullName -ChildPath $newName
Write-Output "Renaming '$($_.FullName)' to '$newPath'"
Rename-Item -Path $_.FullName -NewName $newName
}
}

# List artifacts
"Post copy artifacts"
Get-ChildItem -Recurse $nuget_artifacts_dir\
# List the final artifacts.
Write-Output "Post-copy artifacts:"
Get-ChildItem -Recurse $nuget_artifacts_dir
86 changes: 60 additions & 26 deletions tools/ci_build/github/windows/extract_nuget_files_gpu.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,81 @@
# Licensed under the MIT License.

# This file is used by Zip-Nuget-Java Packaging Pipeline
New-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts -ItemType directory
# Define the directory for NuGet artifacts.
$nuget_artifacts_dir = "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts"
# Create the directory if it doesn't exist.
New-Item -Path $nuget_artifacts_dir -ItemType directory -ErrorAction SilentlyContinue

Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter *.zip |
## .zip files
Get-ChildItem "$Env:BUILD_BINARIESDIRECTORY\nuget-artifact" -Filter *.zip |
Foreach-Object {
$cmd = "7z.exe x $($_.FullName) -y -o$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts"
Write-Output $cmd
Invoke-Expression -Command $cmd
# The -snld20 flag is used to bypass security checks for creating symbolic links (added in 7-Zip 25.01).
$arguments = "x", "$($_.FullName)", "-y", "-o$nuget_artifacts_dir", "-snld20"
Write-Output "Executing: 7z.exe $arguments"
& 7z.exe $arguments
if ($LASTEXITCODE -ne 0) {
throw "Error extracting '$($_.FullName)'. Exit code: $LASTEXITCODE"
}
}

Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter *.tgz |
## .tgz files
Get-ChildItem "$Env:BUILD_BINARIESDIRECTORY\nuget-artifact" -Filter *.tgz |
Foreach-Object {
$cmd = "7z.exe x $($_.FullName) -y -o$Env:BUILD_BINARIESDIRECTORY\nuget-artifact" # *.tar will be created after *.tgz is extracted
Write-Output $cmd
Invoke-Expression -Command $cmd
# The -snld20 flag is used to bypass security checks for creating symbolic links (added in 7-Zip 25.01).
# *.tar will be created after *.tgz is extracted
$arguments = "x", "$($_.FullName)", "-y", "-o$Env:BUILD_BINARIESDIRECTORY\nuget-artifact", "-snld20"
Write-Output "Executing: 7z.exe $arguments"
& 7z.exe $arguments
if ($LASTEXITCODE -ne 0) {
throw "Error extracting '$($_.FullName)'. Exit code: $LASTEXITCODE"
}
}

Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter *.tar |
## .tar files
Get-ChildItem "$Env:BUILD_BINARIESDIRECTORY\nuget-artifact" -Filter *.tar |
Foreach-Object {
$cmd = "7z.exe x $($_.FullName) -y -o$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts"
Write-Output $cmd
Invoke-Expression -Command $cmd
# The -snld20 flag is used to bypass security checks for creating symbolic links (added in 7-Zip 25.01).
$arguments = "x", "$($_.FullName)", "-y", "-o$nuget_artifacts_dir", "-snld20"
Write-Output "Executing: 7z.exe $arguments"
& 7z.exe $arguments
if ($LASTEXITCODE -ne 0) {
throw "Error extracting '$($_.FullName)'. Exit code: $LASTEXITCODE"
}
}

# Create directory for protobuf build dependencies.
New-Item -Path "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\_deps\protobuf-build\RelWithDebInfo" -ItemType directory -ErrorAction SilentlyContinue

New-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\_deps\protobuf-build\RelWithDebInfo -ItemType directory

Copy-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-x64-cuda-*\lib\* -Destination $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo
# Copy CUDA libraries.
Copy-Item -Path "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-x64-cuda-*\lib\*" -Destination "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo"

# Install protoc via dotnet.
$protocInstallDir = "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\_deps\protobuf-build"
dotnet new console
dotnet add package Google.Protobuf.Tools --version 3.21.12 --package-directory $protocInstallDir
if ($LASTEXITCODE -ne 0) {
throw "Error adding Google.Protobuf.Tools package. Exit code: $LASTEXITCODE"
}

# Find and copy the protoc executable.
$protocDir = Get-ChildItem -Path $protocInstallDir -Recurse -Filter "protoc.exe" | Select-Object -ExpandProperty DirectoryName -First 1
Write-Output $protocDir
Copy-Item -Path $protocDir -Destination $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\_deps\protobuf-build\RelWithDebInfo

$ort_dirs = Get-ChildItem -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-* -Directory
foreach ($ort_dir in $ort_dirs)
{
$dirname = Split-Path -Path $ort_dir -Leaf
$dirname = $dirname.SubString(0,$dirname.LastIndexOf('-'))
Write-Output "Renaming $ort_dir to $dirname"
Rename-Item -Path $ort_dir -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\$dirname
if ($protocDir) {
Write-Output "Found protoc directory: $protocDir"
Copy-Item -Path $protocDir -Destination "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\_deps\protobuf-build\RelWithDebInfo"
}
else {
Write-Error "Could not find protoc.exe in $protocInstallDir"
}

# Rename onnxruntime directories to a generic format.
$ort_dirs = Get-ChildItem -Path "$Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-*" -Directory
foreach ($ort_dir in $ort_dirs) {
$dirname = Split-Path -Path $ort_dir -Leaf
$lastHyphenIndex = $dirname.LastIndexOf('-')
if ($lastHyphenIndex -gt -1) {
$newName = $dirname.Substring(0, $lastHyphenIndex)
$newPath = Join-Path -Path $ort_dir.Parent.FullName -ChildPath $newName
Write-Output "Renaming '$($ort_dir.FullName)' to '$newPath'"
Rename-Item -Path $ort_dir.FullName -NewName $newName
}
}
Loading