Skip to content

Commit 6299a60

Browse files
authored
Nuget: splitting PDB files to a separated package (#8903)
1 parent 00b0a9c commit 6299a60

8 files changed

+139
-105
lines changed

csharp/OnnxRuntime.CSharp.proj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ CMake creates a target to this project
131131
</Exec>
132132

133133
<Message Importance="High" Text="Bundling native shared library artifacts into a NuGet package ..." />
134-
<Exec ContinueOnError="False" Command="$(NugetExe) pack NativeNuget.nuspec" ConsoleToMSBuild="true" WorkingDirectory="$(NativeBuildOutputDirAbs)">
134+
<Exec ContinueOnError="False" Command="$(NugetExe) pack -Symbols -SymbolPackageFormat snupkg NativeNuget.nuspec" ConsoleToMSBuild="true" WorkingDirectory="$(NativeBuildOutputDirAbs)">
135135
<Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" />
136136
</Exec>
137137

tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines.yml

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -458,16 +458,17 @@ jobs:
458458
arguments: '--configuration RelWithDebInfo -t:CreatePackage -p:Platform="Any CPU" -p:OnnxRuntimeBuildDirectory="$(Build.BinariesDirectory)" -p:OrtPackageId=Microsoft.ML.OnnxRuntime.Gpu -p:IsReleaseBuild=${{ parameters.IsReleaseBuild }}'
459459
workingDirectory: '$(Build.SourcesDirectory)\csharp'
460460

461-
- task: BatchScript@1
462-
displayName: 'Bundle Native NuGet and other binaries'
461+
- task: CopyFiles@2
462+
displayName: 'Copy nuget packages to: $(Build.ArtifactStagingDirectory)'
463463
inputs:
464-
filename: $(Build.SourcesDirectory)\tools\ci_build\github\windows\bundle_dlls_gpu_nuget.bat
465-
workingFolder: $(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo\nuget-artifacts
464+
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo'
465+
Contents: '*.snupkg'
466+
TargetFolder: '$(Build.ArtifactStagingDirectory)'
466467

467468
- task: CopyFiles@2
468469
displayName: 'Copy nuget packages to: $(Build.ArtifactStagingDirectory)'
469470
inputs:
470-
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo\nuget-artifacts'
471+
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo'
471472
Contents: '*.nupkg'
472473
TargetFolder: '$(Build.ArtifactStagingDirectory)'
473474

@@ -497,12 +498,6 @@ jobs:
497498
artifactName: 'drop-signed-nuget-GPU'
498499
targetPath: '$(Build.ArtifactStagingDirectory)'
499500

500-
- powershell: |
501-
$counter = 0
502-
Get-ChildItem -Path $(Build.ArtifactStagingDirectory)/*.nupkg | foreach {7z x -y -o$counter $_.fullname;$counter++}
503-
workingDirectory: '$(Build.ArtifactStagingDirectory)'
504-
displayName: 'Unzip files to sanitize the PE files'
505-
506501
- task: DotNetCoreCLI@2
507502
displayName: 'Build C#'
508503
inputs:
@@ -513,10 +508,6 @@ jobs:
513508
arguments: '--configuration RelWithDebInfo -p:Platform="Any CPU" -p:OnnxRuntimeBuildDirectory="$(Build.BinariesDirectory)" -p:OrtPackageId=Microsoft.ML.OnnxRuntime.Gpu'
514509
workingDirectory: '$(Build.SourcesDirectory)\csharp'
515510

516-
#TODO: enable binskim
517-
#- task: BinSkim@4
518-
# displayName: 'Run BinSkim'
519-
520511
- task: RoslynAnalyzers@2
521512
displayName: 'Run Roslyn Analyzers'
522513
inputs:

tools/ci_build/github/azure-pipelines/templates/c-api-cpu-no-java.yml

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ jobs:
6464
workingDirectory: $(Build.SourcesDirectory)
6565

6666
- script: |
67-
set -e -x
67+
set -e -x
6868
mkdir $(Build.ArtifactStagingDirectory)/testdata
69-
cp $(Build.BinariesDirectory)/Release/libcustom_op_library.so* $(Build.ArtifactStagingDirectory)/testdata
69+
cp $(Build.BinariesDirectory)/Release/libcustom_op_library.so* $(Build.ArtifactStagingDirectory)/testdata
7070
ls -al $(Build.ArtifactStagingDirectory)
7171
displayName: 'Create Artifacts'
7272
@@ -114,7 +114,7 @@ jobs:
114114
export ONNX_ML=1
115115
export CMAKE_ARGS="-DONNX_GEN_PB_TYPE_STUBS=OFF -DONNX_WERROR=OFF"
116116
sudo python3 -m pip install -r '$(Build.SourcesDirectory)/tools/ci_build/github/linux/docker/scripts/requirements.txt'
117-
sudo xcode-select --switch /Applications/Xcode_12.4.app/Contents/Developer
117+
sudo xcode-select --switch /Applications/Xcode_12.4.app/Contents/Developer
118118
python3 $(Build.SourcesDirectory)/tools/ci_build/build.py ${{ parameters.AdditionalBuildFlags }} --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_shared_lib --config Release
119119
displayName: 'Build and Test MacOS'
120120
- template: c-api-artifacts-package-and-publish-steps-posix.yml
@@ -126,7 +126,7 @@ jobs:
126126
commitId: $(OnnxRuntimeGitCommitHash)
127127

128128
- script: |
129-
set -e -x
129+
set -e -x
130130
mkdir $(Build.ArtifactStagingDirectory)/testdata
131131
cp $(Build.BinariesDirectory)/Release/libcustom_op_library.dylib $(Build.ArtifactStagingDirectory)/testdata
132132
displayName: 'Create Artifacts'
@@ -144,7 +144,6 @@ jobs:
144144
displayName: 'Clean Agent Directories'
145145
condition: always()
146146

147-
148147
- template: win-ci.yml
149148
parameters:
150149
DoCompliance: ${{ parameters.DoCompliance }}
@@ -197,6 +196,7 @@ jobs:
197196
runTests: ${{ parameters.RunOnnxRuntimeTests }}
198197
buildJava: false
199198

199+
200200
- job: NuGet_Packaging_CPU
201201
workspace:
202202
clean: all
@@ -226,7 +226,7 @@ jobs:
226226
inputs:
227227
artifactName: 'onnxruntime-win-x86'
228228
targetPath: '$(Build.BinariesDirectory)/nuget-artifact'
229-
229+
230230
- task: DownloadPipelineArtifact@0
231231
displayName: 'Download Pipeline Artifact - NuGet'
232232
inputs:
@@ -268,12 +268,10 @@ jobs:
268268
dir
269269
workingDirectory: '$(Build.BinariesDirectory)/nuget-artifact'
270270
displayName: 'List artifacts'
271-
272271
- script: |
273272
mklink /D /J models C:\local\models
274273
workingDirectory: '$(Build.BinariesDirectory)'
275274
displayName: 'Create models link'
276-
277275
- task: NuGetToolInstaller@0
278276
displayName: Use Nuget 5.7.0
279277
inputs:
@@ -311,18 +309,19 @@ jobs:
311309
configuration: RelWithDebInfo
312310
arguments: '--configuration RelWithDebInfo -t:CreatePackage -p:Platform="Any CPU" -p:OnnxRuntimeBuildDirectory="$(Build.BinariesDirectory)" -p:OrtPackageId=$(OrtPackageId) -p:IsReleaseBuild=${{ parameters.IsReleaseBuild }}'
313311
workingDirectory: '$(Build.SourcesDirectory)\csharp'
314-
315-
- task: BatchScript@1
316-
displayName: 'Bundle Native NuGet and other binaries'
312+
313+
- task: CopyFiles@2
314+
displayName: 'Copy nuget packages to: $(Build.ArtifactStagingDirectory)'
317315
inputs:
318-
filename: $(Build.SourcesDirectory)\tools\ci_build\github\windows\bundle_dlls.bat
319-
workingFolder: $(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo\nuget-artifacts
316+
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo'
317+
Contents: '*.nupkg'
318+
TargetFolder: '$(Build.ArtifactStagingDirectory)'
320319

321320
- task: CopyFiles@2
322321
displayName: 'Copy nuget packages to: $(Build.ArtifactStagingDirectory)'
323322
inputs:
324-
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo\nuget-artifacts'
325-
Contents: '*.nupkg'
323+
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo'
324+
Contents: '*.snupkg'
326325
TargetFolder: '$(Build.ArtifactStagingDirectory)'
327326

328327
- task: CopyFiles@2
@@ -342,7 +341,7 @@ jobs:
342341
parameters:
343342
NugetPath: '$(Build.ArtifactStagingDirectory)'
344343
NugetPackage: 'Microsoft.ML.OnnxRuntime.*nupkg'
345-
PlatformsSupported: 'win-x64,win-x86,linux-x64,osx-x64'
344+
PlatformsSupported: 'win-x64,win-x86,linux-x64,osx.10.14-x64'
346345
VerifyNugetSigning: false
347346

348347
- task: PublishPipelineArtifact@0
@@ -351,11 +350,6 @@ jobs:
351350
artifactName: 'drop-signed-nuget-CPU'
352351
targetPath: '$(Build.ArtifactStagingDirectory)'
353352

354-
- powershell: |
355-
$counter = 0
356-
Get-ChildItem -Path $(Build.ArtifactStagingDirectory)/*.nupkg | foreach {7z x -y -o$counter $_.fullname;$counter++}
357-
workingDirectory: '$(Build.ArtifactStagingDirectory)'
358-
displayName: 'Unzip files to sanitize the PE files'
359353

360354
- task: DotNetCoreCLI@2
361355
displayName: 'Build C#'
@@ -367,9 +361,6 @@ jobs:
367361
arguments: '--configuration RelWithDebInfo -p:Platform="Any CPU" -p:OnnxRuntimeBuildDirectory="$(Build.BinariesDirectory)" -p:OrtPackageId=$(OrtPackageId)'
368362
workingDirectory: '$(Build.SourcesDirectory)\csharp'
369363

370-
- task: BinSkim@4
371-
displayName: 'Run BinSkim'
372-
373364
- task: RoslynAnalyzers@2
374365
displayName: 'Run Roslyn Analyzers'
375366
inputs:
@@ -386,7 +377,6 @@ jobs:
386377
displayName: 'Clean Agent Directories'
387378
condition: always()
388379

389-
390380
- template: ../nuget/templates/test_win.yml
391381
parameters:
392382
AgentPool : 'Win-CPU-2021'

tools/ci_build/github/azure-pipelines/templates/c-api-cpu.yml

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -364,12 +364,10 @@ jobs:
364364
dir
365365
workingDirectory: '$(Build.BinariesDirectory)/nuget-artifact'
366366
displayName: 'List artifacts'
367-
368367
- script: |
369368
mklink /D /J models C:\local\models
370369
workingDirectory: '$(Build.BinariesDirectory)'
371370
displayName: 'Create models link'
372-
373371
- task: NuGetToolInstaller@0
374372
displayName: Use Nuget 5.7.0
375373
inputs:
@@ -407,18 +405,19 @@ jobs:
407405
configuration: RelWithDebInfo
408406
arguments: '--configuration RelWithDebInfo -t:CreatePackage -p:Platform="Any CPU" -p:OnnxRuntimeBuildDirectory="$(Build.BinariesDirectory)" -p:OrtPackageId=$(OrtPackageId) -p:IsReleaseBuild=${{ parameters.IsReleaseBuild }}'
409407
workingDirectory: '$(Build.SourcesDirectory)\csharp'
410-
411-
- task: BatchScript@1
412-
displayName: 'Bundle Native NuGet and other binaries'
408+
409+
- task: CopyFiles@2
410+
displayName: 'Copy nuget packages to: $(Build.ArtifactStagingDirectory)'
413411
inputs:
414-
filename: $(Build.SourcesDirectory)\tools\ci_build\github\windows\bundle_dlls.bat
415-
workingFolder: $(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo\nuget-artifacts
412+
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo'
413+
Contents: '*.nupkg'
414+
TargetFolder: '$(Build.ArtifactStagingDirectory)'
416415

417416
- task: CopyFiles@2
418417
displayName: 'Copy nuget packages to: $(Build.ArtifactStagingDirectory)'
419418
inputs:
420-
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo\nuget-artifacts'
421-
Contents: '*.nupkg'
419+
SourceFolder: '$(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo'
420+
Contents: '*.snupkg'
422421
TargetFolder: '$(Build.ArtifactStagingDirectory)'
423422

424423
- task: CopyFiles@2
@@ -438,7 +437,7 @@ jobs:
438437
parameters:
439438
NugetPath: '$(Build.ArtifactStagingDirectory)'
440439
NugetPackage: 'Microsoft.ML.OnnxRuntime.*nupkg'
441-
PlatformsSupported: 'win-x64,win-x86,linux-x64,osx-x64'
440+
PlatformsSupported: 'win-x64,win-x86,linux-x64,osx.10.13-x64'
442441
VerifyNugetSigning: false
443442

444443
- task: PublishPipelineArtifact@0
@@ -447,11 +446,6 @@ jobs:
447446
artifactName: 'drop-signed-nuget-CPU'
448447
targetPath: '$(Build.ArtifactStagingDirectory)'
449448

450-
- powershell: |
451-
$counter = 0
452-
Get-ChildItem -Path $(Build.ArtifactStagingDirectory)/*.nupkg | foreach {7z x -y -o$counter $_.fullname;$counter++}
453-
workingDirectory: '$(Build.ArtifactStagingDirectory)'
454-
displayName: 'Unzip files to sanitize the PE files'
455449

456450
- task: DotNetCoreCLI@2
457451
displayName: 'Build C#'
@@ -463,9 +457,6 @@ jobs:
463457
arguments: '--configuration RelWithDebInfo -p:Platform="Any CPU" -p:OnnxRuntimeBuildDirectory="$(Build.BinariesDirectory)" -p:OrtPackageId=$(OrtPackageId)'
464458
workingDirectory: '$(Build.SourcesDirectory)\csharp'
465459

466-
- task: BinSkim@4
467-
displayName: 'Run BinSkim'
468-
469460
- task: RoslynAnalyzers@2
470461
displayName: 'Run Roslyn Analyzers'
471462
inputs:
@@ -482,7 +473,6 @@ jobs:
482473
displayName: 'Clean Agent Directories'
483474
condition: always()
484475

485-
486476
- template: ../nuget/templates/test_win.yml
487477
parameters:
488478
AgentPool : 'Win-CPU-2021'

tools/ci_build/github/windows/bundle_dlls.bat

Lines changed: 0 additions & 28 deletions
This file was deleted.

tools/ci_build/github/windows/extract_nuget_files.ps1

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Copyright (c) Microsoft Corporation. All rights reserved.
22
# Licensed under the MIT License.
33

4+
# This file is used by Zip-Nuget Packaging NoContribOps Pipeline,Zip-Nuget-Java Packaging Pipeline
45
New-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts -ItemType directory
56

67
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter *.zip |
@@ -30,10 +31,13 @@ New-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\external\protobuf\cma
3031
Copy-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-x64-*\lib\* -Destination $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo
3132
Copy-Item -Path $Env:BUILD_BINARIESDIRECTORY\extra-artifact\protoc.exe $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\external\protobuf\cmake\RelWithDebInfo
3233

33-
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-arm-* | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-arm
34-
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-arm64-* | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-arm64
35-
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-x86-* | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-x86
36-
37-
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-linux-x64-* | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-linux-x64
34+
$ort_dirs = Get-ChildItem -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-* -Directory
35+
foreach ($ort_dir in $ort_dirs)
36+
{
37+
38+
$dirname = Split-Path -Path $ort_dir -Leaf
39+
$dirname = $dirname.SubString(0,$dirname.LastIndexOf('-'))
40+
Write-Output "Renaming $ort_dir to $dirname"
41+
Rename-Item -Path $ort_dir -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\$dirname
42+
}
3843

39-
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-osx-x64-* | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-osx-x64

tools/ci_build/github/windows/extract_nuget_files_gpu.ps1

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Copyright (c) Microsoft Corporation. All rights reserved.
22
# Licensed under the MIT License.
33

4+
# This file is used by Zip-Nuget-Java Packaging Pipeline
45
New-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts -ItemType directory
56

67
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\nuget-artifact -Filter *.zip |
@@ -30,7 +31,12 @@ New-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\external\protobuf\cma
3031
Copy-Item -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-x64-cuda-*\lib\* -Destination $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo
3132
Copy-Item -Path $Env:BUILD_BINARIESDIRECTORY\extra-artifact\protoc.exe $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\external\protobuf\cmake\RelWithDebInfo
3233

34+
$ort_dirs = Get-ChildItem -Path $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-* -Directory
35+
foreach ($ort_dir in $ort_dirs)
36+
{
37+
$dirname = Split-Path -Path $ort_dir -Leaf
38+
$dirname = $dirname.SubString(0,$dirname.LastIndexOf('-'))
39+
Write-Output "Renaming $ort_dir to $dirname"
40+
Rename-Item -Path $ort_dir -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\$dirname
41+
}
3342

34-
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts | Where-Object { $_.Name -match 'onnxruntime-linux-x64-cuda-\d{1,}\.\d{1,}\.\d{1,}$' } | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-linux-x64-gpu
35-
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-linux-x64-tensorrt-* | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-linux-x64-tensorrt
36-
Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-x64-tensorrt-* | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\onnxruntime-win-x64-tensorrt

0 commit comments

Comments
 (0)