parameters: - name: IsReleaseBuild displayName: Is this a release build? Set this parameter to true if you are doing an Onnx Runtime release. type: boolean default: false - name: ShouldUploadArchives displayName: Should the package archives be uploaded? The archives will always be uploaded for a release build. type: boolean default: false name: "$(Date:yyyyMMdd)$(Rev:rrr)" # build number format jobs: - job: IosPackaging displayName: "iOS Packaging" pool: vmImage: "macOS-10.15" timeoutInMinutes: 90 steps: - task: UsePythonVersion@0 inputs: versionSpec: "3.9" addToPath: true architecture: "x64" - script: | pip install -r tools/ci_build/github/apple/ios_packaging.requirements.txt displayName: "Install Python requirements" - bash: | BASE_VERSION=$(cat VERSION_NUMBER) IS_RELEASE_BUILD=$(echo "${{ parameters.IsReleaseBuild }}" | tr "[:upper:]" "[:lower:]") SHOULD_UPLOAD_ARCHIVES=$(echo "${{ parameters.ShouldUploadArchives }}" | tr "[:upper:]" "[:lower:]") if [[ "${IS_RELEASE_BUILD}" == "true" ]]; then VERSION=${BASE_VERSION} # always upload archives for a release build SHOULD_UPLOAD_ARCHIVES="true" else VERSION="${BASE_VERSION}-dev+$(Build.BuildNumber)" fi set_var() { local VAR_NAME=${1:?} local VAR_VALUE=${2:?} echo "##vso[task.setvariable variable=${VAR_NAME}]${VAR_VALUE}" echo "${VAR_NAME}: ${VAR_VALUE}" } set_var "ORT_POD_VERSION" "${VERSION}" set_var "ORT_SHOULD_UPLOAD_ARCHIVES" "${SHOULD_UPLOAD_ARCHIVES}" displayName: "Set variables" - script: | /bin/bash $(Build.SourcesDirectory)/tools/ci_build/github/apple/build_host_protoc.sh \ $(Build.SourcesDirectory) \ $(Build.BinariesDirectory)/protobuf \ $(Build.BinariesDirectory)/protobuf_install displayName: "Build Host Protoc" - script: | python tools/ci_build/github/apple/build_and_assemble_ios_pods.py \ --build-dir "$(Build.BinariesDirectory)/ios_framework" \ --staging-dir "$(Build.BinariesDirectory)/staging" \ --pod-version "${ORT_POD_VERSION}" \ --test \ --build-settings-file tools/ci_build/github/apple/default_mobile_ios_framework_build_settings.json \ --include-ops-by-config tools/ci_build/github/android/mobile_package.required_operators.config \ -b="--path_to_protoc_exe" -b "$(Build.BinariesDirectory)/protobuf_install/bin/protoc" displayName: "Build iOS framework and assemble pod package files" - bash: | set -e gem install jazzy jazzy --config objectivec/docs/jazzy_config.yaml \ --output "$(Build.BinariesDirectory)/staging/objc_api_docs" \ --module-version ${ORT_POD_VERSION} displayName: "Generate Objective-C API docs" - task: AzureCLI@2 inputs: azureSubscription: 'AIInfraBuildOnnxRuntimeOSS' scriptType: 'bash' scriptLocation: 'scriptPath' scriptPath: 'tools/ci_build/github/apple/assemble_ios_packaging_artifacts.sh' arguments: >- "$(Build.BinariesDirectory)/staging" "$(Build.ArtifactStagingDirectory)" "$(ORT_POD_VERSION)" "$(ORT_SHOULD_UPLOAD_ARCHIVES)" displayName: "Assemble artifacts" - publish: "$(Build.ArtifactStagingDirectory)" artifact: ios_packaging_artifacts displayName: "Publish artifacts"