Handy/.github/workflows/pr-test-build.yml
Viren Mohindra d3a0281062
fix: prevent crash on macos 26.x beta during startup (#473)
defer apple intelligence availability check from app initialization
to when the user actually tries to use the feature. accessing
SystemLanguageModel.default during early app startup causes SIGABRT
on macOS 26.x (tahoe) beta.

- remove availability check from default_post_process_providers()
- always include apple intelligence provider on macos arm64
- add checkAppleIntelligenceAvailable command for lazy checking
- show error message if apple intelligence unavailable when selected
- clear error on any dropdown selection for better UX
2026-01-04 07:52:06 +08:00

66 lines
2.2 KiB
YAML

name: "PR Test Build"
on:
workflow_dispatch:
inputs:
pr_number:
description: "PR number to build"
required: true
type: string
jobs:
build-test:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: "macos-26"
args: "--target aarch64-apple-darwin"
target: "aarch64-apple-darwin"
- platform: "macos-latest"
args: "--target x86_64-apple-darwin"
target: "x86_64-apple-darwin"
- platform: "ubuntu-22.04"
args: "--bundles deb"
target: "x86_64-unknown-linux-gnu"
- platform: "ubuntu-24.04"
args: "--bundles appimage,rpm"
target: "x86_64-unknown-linux-gnu"
- platform: "windows-latest"
args: ""
target: "x86_64-pc-windows-msvc"
- platform: "windows-11-arm"
args: "--target aarch64-pc-windows-msvc"
target: "aarch64-pc-windows-msvc"
uses: ./.github/workflows/build.yml
with:
platform: ${{ matrix.platform }}
target: ${{ matrix.target }}
build-args: ${{ matrix.args }}
sign-binaries: true
asset-prefix: "handy-pr-${{ inputs.pr_number }}"
upload-artifacts: true
is-debug-build: ${{ contains(matrix.args, '--debug') }}
ref: ${{ format('refs/pull/{0}/merge', inputs.pr_number) }}
secrets: inherit
comment-on-pr:
needs: build-test
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Post artifact links to PR
uses: actions/github-script@v7
with:
script: |
const runUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: ${{ inputs.pr_number }},
body: `## 🧪 Test Build Ready\n\nBuild artifacts for PR #${{ inputs.pr_number }} are available for testing.\n\n**[Download artifacts from workflow run](${runUrl})**\n\nArtifacts expire after 30 days.`
});