microsoft/onnxruntime-extensions

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
0d5d19f67b28024de0b88d4a61bcc4157dc06248

Branches

Tags

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

Clone

HTTPS

Download ZIP

.pipelines/templates/build-package-for-ios-cocoapods.yml

190lines · modecode

1# packaging pipeline for iOS CocoaPods package
2
3parameters:
4- name: IsReleaseBuild
5 displayName: "Is this a release build?"
6 type: boolean
7 default: false
8
9
10- name: AdditionalBuildFlags
11 displayName: Additional build flags for /tools/ios/build_xcframework.py
12 type: string
13
14jobs:
15- template: ios-framework-build.yml
16 parameters:
17 Platform: 'iphoneos'
18 IosArch: 'arm64'
19 IosVersion: '12.0'
20 IsReleaseBuild: ${{parameters.IsReleaseBuild}}
21 AdditionalBuildFlags: ${{parameters.AdditionalBuildFlags}}
22
23- template: ios-framework-build.yml
24 parameters:
25 Platform: 'iphonesimulator'
26 IosArch: 'x86_64'
27 IosVersion: '12.0'
28 IsReleaseBuild: ${{parameters.IsReleaseBuild}}
29 AdditionalBuildFlags: ${{parameters.AdditionalBuildFlags}}
30
31- template: ios-framework-build.yml
32 parameters:
33 Platform: 'iphonesimulator'
34 IosArch: 'arm64'
35 IosVersion: '12.0'
36 IsReleaseBuild: ${{parameters.IsReleaseBuild}}
37 AdditionalBuildFlags: ${{parameters.AdditionalBuildFlags}}
38
39- template: ios-framework-build.yml
40 parameters:
41 Platform: 'maccatalyst'
42 IosArch: 'arm64'
43 IosVersion: '14.0'
44 IsReleaseBuild: ${{parameters.IsReleaseBuild}}
45 AdditionalBuildFlags: ${{parameters.AdditionalBuildFlags}}
46
47- template: ios-framework-build.yml
48 parameters:
49 Platform: 'maccatalyst'
50 IosArch: 'x86_64'
51 IosVersion: '14.0'
52 IsReleaseBuild: ${{parameters.IsReleaseBuild}}
53 AdditionalBuildFlags: ${{parameters.AdditionalBuildFlags}}
54
55- job: IosPackaging
56 condition: not(or(failed(), canceled()))
57 displayName: "iOS Packaging"
58 dependsOn:
59 - IOS_C_API_Packaging_iphoneos_arm64
60 - IOS_C_API_Packaging_iphonesimulator_arm64
61 - IOS_C_API_Packaging_iphonesimulator_x86_64
62 - IOS_C_API_Packaging_maccatalyst_x86_64
63 - IOS_C_API_Packaging_maccatalyst_arm64
64 pool:
65 vmImage: "macOS-13"
66
67 timeoutInMinutes: 120
68
69 steps:
70 - checkout: self
71 submodules: true
72
73 - template: use-xcode-version.yml
74
75 - task: UsePythonVersion@0
76 inputs:
77 versionSpec: "3.9"
78 addToPath: true
79 architecture: "x64"
80
81 # iOS xcframework build doesn't work with CMake 3.25.1, pin to 3.25.0
82 - script: |
83 python -m pip install cmake==3.25.0
84 displayName: "Install CMake 3.25.0"
85
86 - template: set-package-version-variable-step.yml
87 parameters:
88 IsReleaseBuild: ${{ parameters.IsReleaseBuild }}
89 PackageVersionVariableName: ORT_EXTENSIONS_POD_VERSION
90
91 - task: DownloadPipelineArtifact@2
92 inputs:
93 artifact: 'onnxruntime-extensions-ios-iphoneos-arm64-lib'
94 targetPath: '$(Build.BinariesDirectory)/'
95
96 - task: DownloadPipelineArtifact@2
97 inputs:
98 artifact: 'onnxruntime-extensions-ios-iphonesimulator-arm64-lib'
99 targetPath: '$(Build.BinariesDirectory)/'
100
101 - task: DownloadPipelineArtifact@2
102 inputs:
103 artifact: 'onnxruntime-extensions-ios-iphonesimulator-x86_64-lib'
104 targetPath: '$(Build.BinariesDirectory)/'
105
106 - task: DownloadPipelineArtifact@2
107 inputs:
108 artifact: 'onnxruntime-extensions-ios-maccatalyst-x86_64-lib'
109 targetPath: '$(Build.BinariesDirectory)/'
110
111 - task: DownloadPipelineArtifact@2
112 inputs:
113 artifact: 'onnxruntime-extensions-ios-maccatalyst-arm64-lib'
114 targetPath: '$(Build.BinariesDirectory)/'
115
116 - script: |
117 set -e -x
118 ls
119 if ! ls onnxruntime-extensions-ios*.tgz &> /dev/null; then
120 echo "no tgz files found. It's not distributed building, skip!"
121 exit 0
122 fi
123 for tgz_lib in `ls onnxruntime-extensions-ios*.tgz`
124 do
125 echo "decompress $tgz_lib"
126 tar -xvzf $tgz_lib
127 done
128
129 ls
130 ls xcframework_out/intermediates/*
131 workingDirectory: $(Build.BinariesDirectory)
132 displayName: "Extract file from distributed build"
133
134 - script: |
135 python ./tools/ios/build_xcframework.py \
136 --output_dir $(Build.BinariesDirectory)/xcframework_out \
137 --config Release \
138 --platform_arch iphonesimulator x86_64 \
139 --platform_arch iphonesimulator arm64 \
140 --platform_arch iphoneos arm64 \
141 --platform_arch maccatalyst x86_64 \
142 --platform_arch maccatalyst arm64 \
143 --mode pack_xcframework_only
144 displayName: "Pack xcframework for distributed building"
145
146 - script: |
147 python ./tools/ios/assemble_pod_package.py \
148 --staging-dir $(Build.BinariesDirectory)/pod_staging \
149 --xcframework-output-dir $(Build.BinariesDirectory)/xcframework_out \
150 --pod-version ${ORT_EXTENSIONS_POD_VERSION} \
151 --mac_catalyst_enabled
152 displayName: "Assemble pod"
153
154 - script: |
155 ls -lR $(Build.BinariesDirectory)/pod_staging
156 pod lib lint
157 displayName: "Lint pod"
158 workingDirectory: $(Build.BinariesDirectory)/pod_staging
159
160 # Note: In this CI, we exclude macos arch in the build_framework.py command however the test app's podfile by default
161 # is setup for all platforms, and due to that we have explicitly exclude the macos target below when installing the pod
162 # for the test app.
163 - script: |
164 ORT_EXTENSIONS_LOCAL_POD_PATH=$(Build.BinariesDirectory)/pod_staging \
165 EXCLUDE_MACOS_TARGET=true \
166 pod install
167 displayName: "Install pods for OrtExtensionsUsage"
168 workingDirectory: $(Build.SourcesDirectory)/test/ios/OrtExtensionsUsage
169
170 - script: |
171 set -e -x
172
173 POD_STAGING_DIR="$(Build.BinariesDirectory)/pod_staging"
174 ARTIFACTS_STAGING_DIR="$(Build.ArtifactStagingDirectory)"
175 POD_NAME="onnxruntime-extensions-c"
176 POD_ARCHIVE_BASENAME="onnxruntime_extensions.xcframework.${ORT_EXTENSIONS_POD_VERSION}.zip"
177 PODSPEC_BASENAME="${POD_NAME}.podspec"
178
179 pushd ${POD_STAGING_DIR}
180
181 # assemble the files in the artifacts staging directory
182 zip -vry ${ARTIFACTS_STAGING_DIR}/${POD_ARCHIVE_BASENAME} * --exclude ${PODSPEC_BASENAME}
183 cp ${PODSPEC_BASENAME} ${ARTIFACTS_STAGING_DIR}/${PODSPEC_BASENAME}
184
185 popd
186 displayName: "Assemble artifacts"
187
188 - publish: "$(Build.ArtifactStagingDirectory)"
189 artifact: onnxruntime-extensions-ios_package
190 displayName: "Publish artifacts"