mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-29 23:06:41 +00:00
### Description 1. Add compilation cache in Linux CPU ARM and Linux Minimal Build. 2. Integrate 4 Linux CPU build step with cache into one. 3. install ccache from source code in Linux ARM64 image. ### Motivation and Context 1. Enable more build steps with compilation cache. 2. Make it easier to add cache. It could save 40 more minutes of compilation time in Linux ARM64. https://dev.azure.com/onnxruntime/onnxruntime/_build/results?buildId=959619&view=logs&j=1e0830bb-fd74-5d0a-5029-1c63b4266d7b&t=75260ed7-7566-5947-2095-566660191920
87 lines
2.9 KiB
YAML
87 lines
2.9 KiB
YAML
parameters:
|
|
- name: arch
|
|
type: string
|
|
|
|
- name: machine_pool
|
|
type: string
|
|
|
|
- name: base_image
|
|
type: string
|
|
|
|
- name: devtoolset_rootpath
|
|
type: string
|
|
|
|
- name: ld_library_path_arg
|
|
type: string
|
|
|
|
- name: prepend_path
|
|
type: string
|
|
|
|
- name: device
|
|
type: string
|
|
default: '-d CPU'
|
|
|
|
- name: with_cache
|
|
type: boolean
|
|
default: false
|
|
|
|
jobs:
|
|
- job: Linux_py_Wheels_${{ parameters.arch }}
|
|
timeoutInMinutes: 240
|
|
workspace:
|
|
clean: all
|
|
pool: ${{ parameters.machine_pool }}
|
|
variables:
|
|
# The build machine pool doesn't have dotnet, so it can't run CG.
|
|
skipComponentGovernanceDetection: true
|
|
ORT_CACHE_DIR: $(Agent.TempDirectory)/ort_ccache
|
|
TODAY: $[format('{0:dd}{0:MM}{0:yyyy}', pipeline.startTime)]
|
|
steps:
|
|
- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
|
|
displayName: 'Clean Agent Directories'
|
|
condition: always()
|
|
|
|
- checkout: self
|
|
clean: true
|
|
submodules: none
|
|
|
|
- template: set-nightly-build-option-variable-step.yml
|
|
|
|
- template: get-docker-image-steps.yml
|
|
parameters:
|
|
Dockerfile: tools/ci_build/github/linux/docker/inference/x64/python/cpu/Dockerfile.manylinux2014_cpu
|
|
Context: tools/ci_build/github/linux/docker/inference/x64/python/cpu
|
|
DockerBuildArgs: "--build-arg BUILD_UID=$( id -u ) --build-arg BASEIMAGE=${{ parameters.base_image }} --build-arg PLATFORM=${{ parameters.arch }} --build-arg PREPEND_PATH=${{ parameters.prepend_path }} --build-arg LD_LIBRARY_PATH_ARG=${{ parameters.ld_library_path_arg }} --build-arg DEVTOOLSET_ROOTPATH=${{ parameters.devtoolset_rootpath }}"
|
|
Repository: onnxruntimecpubuilpython${{ parameters.arch }}
|
|
${{ if eq(parameters.arch, 'aarch64') }}:
|
|
UpdateDepsTxt: false
|
|
|
|
- template: linux-build-step-with-cache.yml
|
|
parameters:
|
|
WithCache: ${{parameters.with_cache}}
|
|
Today: $(TODAY)
|
|
AdditionalKey: Linux_py_Wheels_${{ parameters.arch }}
|
|
CacheDir: $(ORT_CACHE_DIR)
|
|
ChangeEveryCommit: true
|
|
BuildStep:
|
|
- task: Bash@3
|
|
displayName: 'Build Python Wheel'
|
|
inputs:
|
|
targetType: filePath
|
|
filePath: tools/ci_build/github/linux/run_python_dockerbuild.sh
|
|
arguments: -i onnxruntimecpubuilpython${{ parameters.arch }} -x "${{ parameters.device }}"
|
|
${{ if eq(parameters.with_cache, 'true') }}:
|
|
env:
|
|
ADDITIONAL_DOCKER_PARAMETER: "--volume $(ORT_CACHE_DIR):/cache -e CCACHE_DIR=/cache -e ORT_BUILD_WITH_CACHE=1"
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact: ONNXRuntime python wheel'
|
|
inputs:
|
|
PathtoPublish: '$(Build.BinariesDirectory)/dist'
|
|
ArtifactName: onnxruntime
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
displayName: 'Publish Test Binaries'
|
|
inputs:
|
|
artifactName: 'drop-linux-cpu-${{ parameters.arch }}'
|
|
targetPath: '$(Build.BinariesDirectory)/Release'
|