fix(ci): keep Intel Mac smoke contract honest

This commit is contained in:
debpalash
2026-08-09 22:01:38 +00:00
parent ae87be6dd4
commit c53f1a8d1c
2 changed files with 45 additions and 5 deletions
+33 -5
View File
@@ -270,12 +270,16 @@ jobs:
include:
- os: macos-14
label: macOS
backend_supported: true
- os: macos-15-intel
label: macOS Intel
backend_supported: false
- os: windows-2022
label: Windows
backend_supported: true
- os: ubuntu-22.04
label: Linux
backend_supported: true
runs-on: ${{ matrix.os }}
# Priced for a COLD `uv sync`, on every platform.
#
@@ -316,11 +320,11 @@ jobs:
# though the silence WAV doesn't decode anything heavy — keeps test
# collection from import-erroring on optional audio modules.
- name: System deps (macOS)
if: runner.os == 'macOS'
if: runner.os == 'macOS' && matrix.backend_supported
run: brew install ffmpeg libsndfile || true
- name: System deps (Windows)
if: runner.os == 'Windows'
if: runner.os == 'Windows' && matrix.backend_supported
shell: bash
run: |
# The community chocolatey feed 50x's intermittently (broke PR runs on
@@ -348,7 +352,7 @@ jobs:
ffmpeg -version
- name: System deps (Linux)
if: runner.os == 'Linux'
if: runner.os == 'Linux' && matrix.backend_supported
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: ffmpeg libsndfile1
@@ -356,11 +360,35 @@ jobs:
- name: Install Python deps (including PocketTTS)
# PocketTTS is an opt-in engine, but installing its pinned extra here
# proves that the same dependency set resolves on every release host:
# Apple Silicon, Intel macOS, Windows x64, and Linux x64.
# proves that the same dependency set resolves on every supported local
# backend host. The Intel-Mac leg separately pins the documented
# unsupported contract: its UI is a remote-backend client only (#889).
if: matrix.backend_supported
run: uv sync --extra pockettts
- name: Verify the documented Intel Mac contract
if: ${{ !matrix.backend_supported }}
shell: bash
run: |
python3 - <<'PY'
from pathlib import Path
import platform
import tomllib
assert platform.system() == "Darwin"
assert platform.machine() == "x86_64"
root = Path.cwd()
project = tomllib.loads((root / "pyproject.toml").read_text("utf-8"))
extra = project["project"]["optional-dependencies"]["pockettts"]
assert extra == [
"pocket-tts==2.1.0 ; sys_platform != 'darwin' or platform_machine != 'x86_64'"
]
docs = (root / "docs/install/macos.md").read_text("utf-8")
assert "Intel Macs are not supported" in docs
PY
- name: Run smoke tests
if: matrix.backend_supported
run: uv run pytest tests/smoke/ -q --tb=short
env:
HF_HUB_OFFLINE: "1" # same no-silent-downloads guard as the main pytest job
+12
View File
@@ -75,6 +75,18 @@ def test_pockettts_reports_the_intel_mac_wheel_gap(monkeypatch):
assert "PyTorch" in reason
def test_ci_verifies_intel_mac_as_the_documented_remote_only_host():
from pathlib import Path
workflow = (Path(__file__).resolve().parents[1] / ".github/workflows/ci.yml").read_text(
"utf-8"
)
assert "label: macOS Intel\n backend_supported: false" in workflow
assert "name: Verify the documented Intel Mac contract" in workflow
assert "if: matrix.backend_supported\n run: uv sync --extra pockettts" in workflow
assert "if: matrix.backend_supported\n run: uv run pytest tests/smoke/" in workflow
@pytest.mark.parametrize(
"reason",
[