From 232132992b81cae3f67bb6feb248005b7c6a0a7e Mon Sep 17 00:00:00 2001 From: Sayan Shaw <52221015+sayanshaw24@users.noreply.github.com> Date: Fri, 15 Mar 2024 11:30:19 -0700 Subject: [PATCH] Combine JAR Packages for Windows, Linux, and MacOS (#669) * unpack all JARs * fix macos job * remove -f for macos tree * move build files from java and linux into macos directory for combined JAR * test with download and publish pipeline artifacts instead * use full download task name rather than shortcut * add job dependencies * combine JAR packages into one * update version from version.txt * change relative path for version.txt * test * typo * Update java_packaging.yml for Azure Pipelines * Update java_packaging.yml for Azure Pipelines * test without output variable * Update java_packaging.yml for Azure Pipelines * test with type rather than cat command * Update java_packaging.yml for Azure Pipelines * Update java_packaging.yml for Azure Pipelines * Update java_packaging.yml for Azure Pipelines * Update java_packaging.yml for Azure Pipelines * Update java_packaging.yml for Azure Pipelines * set version in each job * Update java_packaging.yml for Azure Pipelines * Update java_packaging.yml for Azure Pipelines * add back dependencies * final --------- Co-authored-by: Sayan Shaw --- .pipelines/java_packaging.yml | 95 ++++++++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 19 deletions(-) diff --git a/.pipelines/java_packaging.yml b/.pipelines/java_packaging.yml index 39fbe3fab..23e7e6920 100644 --- a/.pipelines/java_packaging.yml +++ b/.pipelines/java_packaging.yml @@ -13,6 +13,15 @@ stages: pool: {name: 'onnxruntime-Win-CPU-2022'} steps: + - task: PowerShell@2 + displayName: 'Set version' + inputs: + targetType: 'inline' + script: | + $_ExtVersion=(cat version.txt) + echo "##vso[task.setvariable variable=OrtExtVersion;]$_ExtVersion" + workingDirectory: '$(Build.SourcesDirectory)' + - script: | call .\build.bat -DOCOS_BUILD_JAVA=ON displayName: build the extensions java package @@ -25,7 +34,7 @@ stages: - script: | cd $(Build.ArtifactStagingDirectory) - jar xvf onnxruntime-extensions-0.11.0.jar + jar xvf onnxruntime-extensions-$(OrtExtVersion).jar tree $(Build.ArtifactStagingDirectory) /f displayName: Unpack JAR to sign DLL @@ -35,18 +44,9 @@ stages: DisplayName: 'Sign DLL' DoEsrp: 'true' - - script: | - cd $(Build.ArtifactStagingDirectory) - rm onnxruntime-extensions-0.11.0.jar - jar cmf0 META-INF/MANIFEST.MF onnxruntime-extensions-0.11.0.jar * - tree $(Build.ArtifactStagingDirectory) /f - displayName: Repack JAR with signed DLL - - - task: PublishPipelineArtifact@1 - displayName: 'Publish Windows Artifact' - inputs: - targetPath: '$(Build.ArtifactStagingDirectory)' - artifact: 'drop-signed-windows-onnxruntime-extensions-java-cpu' + - publish: $(Build.ArtifactStagingDirectory)/ai/onnxruntime/extensions/native/ + displayName: 'Publish Windows Binaries for Combined JAR' + artifact: WindowsBinaries - template: templates/component-governance-component-detection-steps.yml parameters : @@ -62,6 +62,15 @@ stages: pool: {name: 'Azure-Pipelines-EO-Ubuntu-2004-aiinfra'} steps: + - task: PowerShell@2 + displayName: 'Set version' + inputs: + targetType: 'inline' + script: | + $_ExtVersion=(cat version.txt) + echo "##vso[task.setvariable variable=OrtExtVersion;]$_ExtVersion" + workingDirectory: '$(Build.SourcesDirectory)' + - script: | sh ./build.sh -DOCOS_BUILD_JAVA=ON displayName: build the extensions java package @@ -72,11 +81,16 @@ stages: SourceFolder: 'out/$(Agent.OS)/RelWithDebInfo/java/build/libs' TargetFolder: '$(Build.ArtifactStagingDirectory)' - - task: PublishPipelineArtifact@1 - displayName: 'Publish Linux Artifact' - inputs: - targetPath: '$(Build.ArtifactStagingDirectory)' - artifact: 'drop-linux-onnxruntime-extensions-java-cpu' + - script: | + cd $(Build.ArtifactStagingDirectory) + echo $(OrtExtVersion) + jar xvf onnxruntime-extensions-$(OrtExtVersion).jar + tree $(Build.ArtifactStagingDirectory) /f + displayName: Unpack JAR + + - publish: $(Build.ArtifactStagingDirectory)/ai/onnxruntime/extensions/native/ + displayName: 'Publish Linux Binaries for Combined JAR' + artifact: LinuxBinaries - template: templates/component-governance-component-detection-steps.yml parameters : @@ -87,12 +101,24 @@ stages: condition: always() - job: MacOS_CPU_Java_Packaging + dependsOn: + - Windows_CPU_Java_Packaging + - Linux_CPU_Java_Packaging workspace: clean: all pool: vmImage: 'macOS-13' steps: + - task: PowerShell@2 + displayName: 'Set version' + inputs: + targetType: 'inline' + script: | + $_ExtVersion=(cat version.txt) + echo "##vso[task.setvariable variable=OrtExtVersion;]$_ExtVersion" + workingDirectory: '$(Build.SourcesDirectory)' + - script: | sh ./build.sh -DOCOS_BUILD_JAVA=ON displayName: build the extensions java package @@ -103,11 +129,42 @@ stages: SourceFolder: 'out/$(Agent.OS)/RelWithDebInfo/java/build/libs' TargetFolder: '$(Build.ArtifactStagingDirectory)' + - script: | + cd $(Build.ArtifactStagingDirectory) + echo $(OrtExtVersion) + jar xvf onnxruntime-extensions-$(OrtExtVersion).jar + brew install tree + tree $(Build.ArtifactStagingDirectory) + displayName: Unpack JAR to view contents + + - task: DownloadPipelineArtifact@0 + displayName: 'Download Windows Pipeline Artifact' + inputs: + artifactName: 'WindowsBinaries' + targetPath: '$(Build.ArtifactStagingDirectory)/ai/onnxruntime/extensions/native/' + + - task: DownloadPipelineArtifact@0 + displayName: 'Download Linux Pipeline Artifact' + inputs: + artifactName: 'LinuxBinaries' + targetPath: '$(Build.ArtifactStagingDirectory)/ai/onnxruntime/extensions/native/' + + - script: | + brew install tree + tree $(Build.ArtifactStagingDirectory) + displayName: Print contents + + - script: | + cd $(Build.ArtifactStagingDirectory) + rm onnxruntime-extensions-$(OrtExtVersion).jar + jar cmf0 META-INF/MANIFEST.MF onnxruntime-extensions-$(OrtExtVersion).jar * + displayName: Combine and pack JAR with Windows, Linux and MacOS Binaries + - task: PublishPipelineArtifact@1 displayName: 'Publish MacOS Artifact' inputs: targetPath: '$(Build.ArtifactStagingDirectory)' - artifact: 'drop-macos-onnxruntime-extensions-java-cpu' + artifact: 'drop-onnxruntime-extensions-java-cpu' - template: templates/component-governance-component-detection-steps.yml parameters :