diff --git a/.github/workflows/tauri-build.yml b/.github/workflows/tauri-build.yml index d1bea4e726..7dabf10f16 100644 --- a/.github/workflows/tauri-build.yml +++ b/.github/workflows/tauri-build.yml @@ -86,7 +86,7 @@ jobs: # ARM64: NSIS only (WiX MSI has no arm64 support in Tauri) and no JPDFium # natives yet - flip jpdfium_platforms to windows-arm64 once JPDFium ships it. WINDOWS_ARM64='{"platform":"windows-11-arm","args":"--target aarch64-pc-windows-msvc --bundles nsis","name":"windows-arm64","jpdfium_platforms":"none"}' - MACOS='{"platform":"macos-15","args":"--target universal-apple-darwin","name":"macos-universal","jpdfium_platforms":"darwin-arm64,darwin-x64"}' + MACOS='{"platform":"macos-26","args":"--target universal-apple-darwin","name":"macos-universal","jpdfium_platforms":"darwin-arm64,darwin-x64"}' LINUX='{"platform":"ubuntu-22.04","args":"","name":"linux-x86_64","jpdfium_platforms":"linux-x64"}' case "$PLATFORM" in @@ -131,7 +131,7 @@ jobs: # PRs included: Gatekeeper blocks an unsigned .dmg, so an unsigned macOS # PR build is not testable. Windows and Linux stay main-only, matching the # gates on their own signing steps below. - SIGN_BUNDLE: ${{ inputs.sign && (matrix.platform == 'macos-15' && secrets.APPLE_CERTIFICATE != '' || github.ref == 'refs/heads/main') }} + SIGN_BUNDLE: ${{ inputs.sign && (matrix.platform == 'macos-26' && secrets.APPLE_CERTIFICATE != '' || github.ref == 'refs/heads/main') }} steps: - name: Harden Runner uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1 @@ -219,7 +219,7 @@ jobs: uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable with: toolchain: stable - targets: ${{ matrix.platform == 'macos-15' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} + targets: ${{ matrix.platform == 'macos-26' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} # Cache the Cargo registry and compiled dependency crates so the build # only recompiles the app crate. Written on main; PRs and the merge queue @@ -254,7 +254,7 @@ jobs: key: gradle-tauri-build-v1-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'buildSrc/**', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }} - name: Set up x86_64 JDK 25 (macOS universal JRE) - if: matrix.platform == 'macos-15' + if: matrix.platform == 'macos-26' uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0 with: java-version: "25" @@ -262,7 +262,7 @@ jobs: architecture: "x64" - name: Capture x86_64 JAVA_HOME - if: matrix.platform == 'macos-15' + if: matrix.platform == 'macos-26' run: echo "X64_JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV" # Temurin has no windows-aarch64 JDK 25 yet; Microsoft OpenJDK does. @@ -276,7 +276,7 @@ jobs: uses: go-task/setup-task@01a4adf9db2d14c1de7a560f09170b6e0df736aa # v2.1.0 - name: Build universal macOS JRE - if: matrix.platform == 'macos-15' + if: matrix.platform == 'macos-26' env: AARCH64_JAVA_HOME: ${{ env.JAVA_HOME }} JPDFIUM_PLATFORMS: ${{ matrix.jpdfium_platforms }} @@ -347,7 +347,7 @@ jobs: } - name: Import Apple Developer Certificate - if: env.SIGN_BUNDLE == 'true' && matrix.platform == 'macos-15' + if: env.SIGN_BUNDLE == 'true' && matrix.platform == 'macos-26' env: APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} @@ -368,7 +368,7 @@ jobs: rm certificate.p12 - name: Verify Certificate - if: env.SIGN_BUNDLE == 'true' && matrix.platform == 'macos-15' + if: env.SIGN_BUNDLE == 'true' && matrix.platform == 'macos-26' run: | echo "Verifying Apple Developer Certificate..." KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db @@ -380,7 +380,7 @@ jobs: echo "Certificate imported successfully." - name: Check DMG creation dependencies (macOS only) - if: matrix.platform == 'macos-15' + if: matrix.platform == 'macos-26' run: | echo "🔍 Checking DMG creation dependencies on ${{ matrix.platform }}..." echo "hdiutil version: $(hdiutil --version || echo 'NOT FOUND')" @@ -562,7 +562,7 @@ jobs: fi - name: Verify notarization (macOS only) - if: env.SIGN_BUNDLE == 'true' && matrix.platform == 'macos-15' + if: env.SIGN_BUNDLE == 'true' && matrix.platform == 'macos-26' run: | echo "🔍 Verifying notarization status..." cd ./frontend/editor/src-tauri/target @@ -613,7 +613,7 @@ jobs: elif [ "${{ matrix.platform }}" = "windows-11-arm" ]; then # arm64 ships the NSIS installer (WiX MSI has no arm64 support in Tauri). find . -name "*-setup.exe" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}-setup.exe" \; - elif [ "${{ matrix.platform }}" = "macos-15" ]; then + elif [ "${{ matrix.platform }}" = "macos-26" ]; then find . -name "*.dmg" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.dmg" \; else find . -name "*.deb" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.deb" \; @@ -725,7 +725,7 @@ jobs: echo "❌ No Windows executable found" exit 1 fi - elif [ "${{ matrix.platform }}" = "macos-15" ]; then + elif [ "${{ matrix.platform }}" = "macos-26" ]; then echo "Checking for macOS artifacts..." find . -name "*.dmg" | head -5 if [ $(find . -name "*.dmg" | wc -l) -eq 0 ]; then @@ -765,7 +765,7 @@ jobs: run: | rm -f certificate.p12 rm -rf "$RUNNER_TEMP/msi-verify" - if [ "${{ matrix.platform }}" = "macos-15" ]; then + if [ "${{ matrix.platform }}" = "macos-26" ]; then security delete-keychain "$RUNNER_TEMP/app-signing.keychain-db" 2>/dev/null || true fi continue-on-error: true