mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-06-09 00:30:53 +00:00
Split java's gradle build and test (#20817)
### Description This PR to allow `./gradlew cmakeCheck` failed on Windows_Packaging_(CUDA|TensorRT) Job. This way, it will still generate all nessary jar and pom file need for later stage to consume while `./gradlew cmakeCheck`will be also run again in the Windows_Packaging_(CUDA|TensorRT)_Testing stage. ### Motivation and Context Reduce the time of All java packaging stages by 30+ min.
This commit is contained in:
parent
ab9f153746
commit
ae8df4db8f
3 changed files with 33 additions and 27 deletions
|
|
@ -10,10 +10,8 @@ stages:
|
|||
- stage: Jar_Packaging_GPU
|
||||
dependsOn:
|
||||
- Linux_C_API_Packaging_GPU
|
||||
# Because Java Jar is published only after Windows Packaging GPU Testing stage we need to depend on the Testing stages
|
||||
# TODO: change Windows_Packaging_*_Testing to Windows_Packaging_* once we finish PRODUCT BACKLOG ITEM 34666
|
||||
- Windows_Packaging_CUDA_Testing
|
||||
- Windows_Packaging_TensorRT_Testing
|
||||
- Windows_Packaging_CUDA
|
||||
- Windows_Packaging_TensorRT
|
||||
- Download_Java_Tools
|
||||
jobs:
|
||||
- job: Jar_Packaging_GPU
|
||||
|
|
|
|||
|
|
@ -3,16 +3,25 @@ parameters:
|
|||
type: string
|
||||
- name: java_artifact_id
|
||||
type: string
|
||||
- name: buildOnly
|
||||
type: boolean
|
||||
|
||||
steps:
|
||||
- task: CmdLine@2
|
||||
displayName: 'Gradle cmakeCheck'
|
||||
continueOnError: ${{ parameters.buildOnly }}
|
||||
inputs:
|
||||
script: |
|
||||
@echo on
|
||||
call gradlew.bat cmakeCheck -DcmakeBuildDir=$(Build.BinariesDirectory)\RelWithDebInfo
|
||||
workingDirectory: $(Build.SourcesDirectory)\java
|
||||
failOnStderr: ${{ not(parameters.buildOnly) }}
|
||||
|
||||
- task: CmdLine@2
|
||||
displayName: 'Add symbols and notices to Java'
|
||||
inputs:
|
||||
script: |
|
||||
@echo on
|
||||
cd $(Build.SourcesDirectory)\java
|
||||
call $(Build.SourcesDirectory)\java\gradlew.bat cmakeCheck -DcmakeBuildDir=$(Build.BinariesDirectory)\RelWithDebInfo
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
cd $(Build.BinariesDirectory)\RelWithDebInfo
|
||||
set NATIVE_FOLDER=$(Build.BinariesDirectory)\onnxruntime-java-win-${{ parameters.msbuildPlatform }}\stage\ai\onnxruntime\native\win-x64
|
||||
mkdir %NATIVE_FOLDER%
|
||||
|
|
|
|||
|
|
@ -191,19 +191,24 @@ stages:
|
|||
createLogFile: true
|
||||
|
||||
# For CPU job, tests are run in the same machine as building
|
||||
- ${{ if contains(parameters.ort_build_pool_name, 'CPU') }}:
|
||||
- ${{ if eq(parameters.buildJava, 'true') }}:
|
||||
- template: make_java_win_binaries.yml
|
||||
parameters:
|
||||
msbuildPlatform: ${{ parameters.msbuildPlatform }}
|
||||
java_artifact_id: ${{ parameters.java_artifact_id }}
|
||||
- ${{ if eq(parameters.buildJava, 'true') }}:
|
||||
- template: make_java_win_binaries.yml
|
||||
parameters:
|
||||
msbuildPlatform: ${{ parameters.msbuildPlatform }}
|
||||
java_artifact_id: ${{ parameters.java_artifact_id }}
|
||||
${{ if contains(parameters.ort_build_pool_name, 'CPU') }}:
|
||||
buildOnly: false
|
||||
# When it is a GPU build, we only assemble the java binaries, testing will be done in the later stage with GPU machine
|
||||
${{ else }}:
|
||||
buildOnly: true
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
condition: and(succeeded(), eq('${{ parameters.buildJava}}', true))
|
||||
displayName: 'Publish Java temp binaries'
|
||||
inputs:
|
||||
pathtoPublish: '$(Build.BinariesDirectory)\onnxruntime-java-win-${{ parameters.msbuildPlatform }}'
|
||||
artifactName: 'drop-onnxruntime-java-win-${{ parameters.packageName }}${{parameters.artifact_name_suffix}}'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Java temp binaries'
|
||||
inputs:
|
||||
pathtoPublish: '$(Build.BinariesDirectory)\onnxruntime-java-win-${{ parameters.msbuildPlatform }}'
|
||||
artifactName: 'drop-onnxruntime-java-win-${{ parameters.packageName }}${{parameters.artifact_name_suffix}}'
|
||||
# All GPU builds will be tested in the next stage with GPU machine
|
||||
- ${{ if contains(parameters.ort_build_pool_name, 'CPU') }}:
|
||||
- task: PythonScript@0
|
||||
displayName: 'test'
|
||||
condition: and(succeeded(), eq('${{ parameters.runTests}}', true))
|
||||
|
|
@ -386,16 +391,10 @@ stages:
|
|||
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
|
||||
arguments: '--config RelWithDebInfo --use_binskim_compliant_compile_flags --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --test --enable_onnx_tests $(TelemetryOption) '
|
||||
workingDirectory: '$(Build.BinariesDirectory)'
|
||||
|
||||
# Previous stage only assembles the java binaries, testing will be done in this stage with GPU machine
|
||||
- ${{ if eq(parameters.buildJava, 'true') }}:
|
||||
- template: make_java_win_binaries.yml
|
||||
parameters:
|
||||
msbuildPlatform: ${{ parameters.msbuildPlatform }}
|
||||
java_artifact_id: ${{ parameters.java_artifact_id }}
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
condition: and(succeeded(), eq('${{ parameters.buildJava}}', true))
|
||||
displayName: 'Publish Java temp binaries'
|
||||
inputs:
|
||||
pathtoPublish: '$(Build.BinariesDirectory)\onnxruntime-java-win-${{ parameters.msbuildPlatform }}'
|
||||
artifactName: 'drop-onnxruntime-java-win-${{ parameters.packageName }}${{parameters.artifact_name_suffix}}'
|
||||
buildOnly: false
|
||||
Loading…
Reference in a new issue