feat: self-service Zaprite Pro to Max upgrades #631
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: iOS App PR Build | |
| permissions: | |
| contents: read | |
| on: | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| changes: | |
| uses: ./.github/workflows/app-change-detection.yml | |
| build-ios: | |
| needs: changes | |
| if: ${{ always() && !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.ios != 'false') }} | |
| runs-on: macos-26-xlarge | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # was v4 | |
| with: | |
| persist-credentials: false | |
| # Xcode 26.5 is temporarily exposed as a beta app on macos-26 runners: https://github.com/actions/runner-images/issues/14108 | |
| - name: Select Xcode 26.5 | |
| id: select_xcode | |
| run: | | |
| set -euo pipefail | |
| for xcode_app in \ | |
| /Applications/Xcode_26.5.0.app \ | |
| /Applications/Xcode_26.5_beta_2.app \ | |
| /Applications/Xcode_26.5_beta.app | |
| do | |
| if [ -x "${xcode_app}/Contents/Developer/usr/bin/xcodebuild" ]; then | |
| sudo xcode-select -s "${xcode_app}/Contents/Developer" | |
| xcode_info="$(xcodebuild -version)" | |
| printf '%s\n' "${xcode_info}" | |
| printf 'version=%s\n' "$(printf '%s\n' "${xcode_info}" | awk '/^Xcode / { print $2; exit }')" >> "${GITHUB_OUTPUT}" | |
| printf 'build=%s\n' "$(printf '%s\n' "${xcode_info}" | awk '/^Build version / { print $3; exit }')" >> "${GITHUB_OUTPUT}" | |
| exit 0 | |
| fi | |
| done | |
| echo "Xcode 26.5 is not installed on this runner." >&2 | |
| ls -1 /Applications/Xcode*.app >&2 || true | |
| exit 1 | |
| - name: Install Nix | |
| uses: DeterminateSystems/nix-installer-action@ef8a148080ab6020fd15196c2084a2eea5ff2d25 # was v22 | |
| with: | |
| github-token: "" | |
| - name: Cache Xcode DerivedData and SourcePackages | |
| uses: irgaly/xcode-cache@4141f139f00e335c6e1031fb93e667181f86146f # was v1 | |
| with: | |
| key: xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}-${{ hashFiles('frontend/src-tauri/Cargo.lock') }} | |
| restore-keys: | | |
| xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ github.workflow }}- | |
| xcode-cache-ios-xcode26.5-${{ steps.select_xcode.outputs.build }}- | |
| - name: Cache ONNX Runtime iOS artifact | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # was v4 | |
| with: | |
| path: | | |
| frontend/src-tauri/onnxruntime-ios | |
| key: pr-onnxruntime-ios-artifact-1.23.2-xcode26.5-${{ steps.select_xcode.outputs.build }}-${{ hashFiles('flake.lock', 'flake.nix', 'scripts/ci/_common.sh', 'scripts/ci/ios-onnxruntime.sh', 'frontend/src-tauri/scripts/build-ios-onnxruntime-all.sh', 'frontend/src-tauri/scripts/canonicalize-static-archive.py', 'frontend/src-tauri/scripts/onnxruntime-pins.sh') }} | |
| restore-keys: | | |
| pr-onnxruntime-ios-artifact-1.23.2-xcode26.5-${{ steps.select_xcode.outputs.build }}- | |
| - name: Prepare ONNX Runtime iOS artifact | |
| run: nix develop --no-update-lock-file .#apple -c ./scripts/ci/ios-onnxruntime.sh | |
| timeout-minutes: 90 | |
| - name: Build Tauri iOS App (simulator) | |
| run: nix develop --no-update-lock-file .#apple -c ./scripts/ci/ios-pr.sh | |
| env: | |
| MAPLE_IOS_DOWNLOAD_SIMULATOR_RUNTIME: "1" | |
| timeout-minutes: 90 | |
| - name: Upload iOS PR Simulator App | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # was v4 | |
| with: | |
| name: maple-ios-simulator-pr | |
| path: | | |
| frontend/src-tauri/gen/apple/build/**/*.app | |
| frontend/src-tauri/target/reproducibility/ios-*.sha256 | |
| retention-days: 5 |