E2E audio (nightly, non-blocking) #46
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: E2E audio (nightly, non-blocking) | |
| # Tier-2 of docs/E2E_AUDIO_TESTING.md: run the REAL WhisperKit engine over the | |
| # checked-in fixtures. This is heavier than the plain `swift test` job (it builds | |
| # the WhisperKit dependency and downloads a model), so it runs nightly / on | |
| # demand and is marked non-blocking — Tier-1 (deterministic, in `ci.yml`) is the | |
| # gate. The BlackHole virtual-mic smoke test (scripts/e2e-smoke.sh) is NOT here: | |
| # it needs a running app + mic TCC, so it's a local/self-hosted concern. | |
| on: | |
| schedule: | |
| - cron: '0 7 * * *' # 07:00 UTC daily | |
| workflow_dispatch: # manual trigger | |
| # Never block a PR/branch — this job is advisory. | |
| permissions: | |
| contents: read | |
| jobs: | |
| whisperkit-fixtures: | |
| name: real WhisperKit over fixtures | |
| runs-on: macos-14 | |
| # Don't fail the workflow run if this flaky, network-dependent job fails. | |
| continue-on-error: true | |
| timeout-minutes: 40 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive # WhisperKit dep lives in a submodule | |
| - name: Select Xcode | |
| uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 | |
| with: | |
| xcode-version: latest-stable | |
| - name: Show Swift version | |
| run: swift --version | |
| - name: Run real-engine E2E over fixtures (tiny.en) | |
| run: ./scripts/e2e-whisperkit.sh openai_whisper-tiny.en | |
| full-build: | |
| # Full-fat compile of the mac app with EVERY backend on (WhisperKit + | |
| # Parakeet + Sparkle + plugins, the release default) plus ./package.sh, which | |
| # bundles the runtimes and CLI and runs the binary-verify guards | |
| # (verify-whisperkit-binary.sh / verify-parakeet-binary.sh / | |
| # verify-plugins-binary.sh) that assert the real engines and the in-repo | |
| # plugins actually linked. ci.yml's build-app job proves the app type-checks | |
| # in LEAN mode fast on every PR, and build-app-plugins proves the | |
| # plugins-included default compiles; this nightly job proves the full-fat | |
| # link + package path the release DMG actually uses still works. | |
| # Advisory (non-blocking) like the rest of this workflow; no signing secrets | |
| # (package.sh does ad-hoc --deep codesign only — build-dmg.sh handles | |
| # notarized release signing). | |
| name: full-fat app build + package | |
| runs-on: macos-14 | |
| continue-on-error: true | |
| timeout-minutes: 40 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive # whisper.cpp / llama.cpp + WhisperKit dep | |
| - name: Select Xcode | |
| uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 | |
| with: | |
| xcode-version: latest-stable | |
| - name: Show Swift version | |
| run: swift --version | |
| - name: Build + package full-fat app (all backends on) | |
| run: ./package.sh |