microsoft/onnxruntime-extensions

Public

mirrored fromhttps://github.com/microsoft/onnxruntime-extensionsAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
b7b8816dab43f095079c5c7609764c702e3c6e49

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

.pipelines/templates/build-package-for-linux.yml

93lines · modepreview

# This file contains the ADO job that build so-file on Linux
parameters:
- name: IsReleaseBuild
  displayName: "Is this a release build?"
  type: boolean
  default: false

- name: OrtExtensionsArch
  type: string

- name: PoolName
  type: string
  default: 'aiinfra-Linux-CPU'

- name: OrtExtensionsCFlags
  type: string

- name: OrtExtensionsCXXFlags
  type: string

- name: AdditionalBuildFlags
  displayName: Additional build flags for build_lib.sh
  type: string

jobs:
- job: Linux_C_API_Packaging_CPU_${{parameters.OrtExtensionsArch}}

  workspace:
    clean: all
  timeoutInMinutes:  210
  pool: ${{parameters.PoolName}}
  steps:
    - checkout: self
      clean: true
      submodules: none

    # Currently we can only run tests on x64 as the arm64 tests have a failure
    # https://github.com/microsoft/onnxruntime-extensions/issues/417
    - ${{ if eq(parameters.OrtExtensionsArch, 'x64') }}:
      - bash: |
          export CFLAGS="${{parameters.OrtExtensionsCFlags}}"
          export CXXFLAGS="${{parameters.OrtExtensionsCXXFlags}}"
          ./build_lib.sh --build_dir $(Build.BinariesDirectory)/out/ --config RelWithDebInfo --parallel --enable_cxx_tests ${{parameters.AdditionalBuildFlags}}
        workingDirectory: '$(Build.SourcesDirectory)'
        displayName: 'build onnxruntime-extensions and run tests'
    - ${{ else }}:
      - bash: |
          export CFLAGS="${{parameters.OrtExtensionsCFlags}}"
          export CXXFLAGS="${{parameters.OrtExtensionsCXXFlags}}"
          ./build_lib.sh --build_dir $(Build.BinariesDirectory)/out/ --config RelWithDebInfo --parallel ${{parameters.AdditionalBuildFlags}}
        workingDirectory: '$(Build.SourcesDirectory)'
        displayName: 'build onnxruntime-extensions'

    - template: set-package-version-variable-step.yml
      parameters:
        IsReleaseBuild: true
        PackageVersionVariableName: ORT_EXTENSIONS_VERSION

    - bash: |
       set -e -x

       lib_target=$(Build.BinariesDirectory)/onnxruntime-extensions-linux-${{parameters.OrtExtensionsArch}}-$(ORT_EXTENSIONS_VERSION)/lib
       mkdir -p $lib_target

       ls -l out/RelWithDebInfo/lib
       cp out/RelWithDebInfo/lib/libortextensions.so $lib_target

       cd $lib_target
       objcopy --only-keep-debug libortextensions.so libortextensions.so.dbg
       objcopy --strip-debug libortextensions.so
       objcopy --add-gnu-debuglink=libortextensions.so.dbg libortextensions.so

      displayName: create and copy artifacts.
      workingDirectory: $(Build.BinariesDirectory)


    - task: ArchiveFiles@2
      inputs:
        rootFolderOrFile: '$(Build.BinariesDirectory)/onnxruntime-extensions-linux-${{parameters.OrtExtensionsArch}}-$(ORT_EXTENSIONS_VERSION)'
        includeRootFolder: true
        archiveType: 'tar' # Options: zip, 7z, tar, wim
        tarCompression: 'gz'
        archiveFile: '$(Build.ArtifactStagingDirectory)/onnxruntime-extensions-linux-${{parameters.OrtExtensionsArch}}.tgz'
        replaceExistingArchive: true

    - task: PublishPipelineArtifact@1
      inputs:
        targetPath: '$(Build.ArtifactStagingDirectory)'
        artifactName: 'onnxruntime-extensions-linux-${{parameters.OrtExtensionsArch}}'

    - task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
      displayName: 'Clean Agent Directories'
      condition: always()