Skip to content

E2E audio (nightly, non-blocking) #46

E2E audio (nightly, non-blocking)

E2E audio (nightly, non-blocking) #46

Workflow file for this run

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