[eric] ci: the three suites run on macOS arm64, macOS Intel and Windows on every eric/dev push, and dogfood gets its Mac leg back (ENG-486)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
ciregenz
2026-09-06 17:58:24 -07:00
co-authored by Claude Fable 5.1
parent 2bc9d4eeb9
commit 9d68ac6d5d
2 changed files with 71 additions and 4 deletions
+3 -4
View File
@@ -36,10 +36,9 @@ jobs:
strategy:
fail-fast: false
matrix:
# Windows-only. macOS legs removed: runner starvation + untriageable
# mac-only failures kept the matrix red. Re-add when a Mac maintainer
# owns them (and pass --require win32,darwin to verify-release-readiness).
os: [windows-latest]
# The macOS leg was dropped once for runner starvation and mac-only failures nobody
# owned; the desktop app ships to Macs first, so it is back, and a red leg is a finding.
os: [windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
+68
View File
@@ -0,0 +1,68 @@
name: Suites on every OS
# The three suites (backend pytest, frontend, electron) used to run only on one developer's Mac;
# CI ran a hermetic subset on Ubuntu. Users run a 2017 iMac, Intel Macs and Windows laptops, so the
# full suites run on the three hosted OSes. fail-fast is off and every suite runs even after a red
# one, so one run reports all nine verdicts.
on:
workflow_dispatch:
push:
branches: [eric/dev, main]
concurrency:
group: suites-matrix-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
suites:
strategy:
fail-fast: false
matrix:
os: [macos-latest, macos-15-intel, windows-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
OSW_NEVER_KILL_ROUTER: '1'
OSW_DISABLE_AUTO_RESUME: '1'
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.13'
cache: pip
cache-dependency-path: backend/requirements.lock
- name: Backend dependencies (the locked set users get, plus the test runner)
run: |
pip install -r backend/requirements.lock
pip install -r backend/requirements-dev.txt
- name: Backend suite
shell: bash
run: python -m pytest backend/tests -q -p no:cacheprovider
- uses: actions/setup-node@v4
if: always()
with:
node-version: '22'
cache: npm
cache-dependency-path: |
frontend/package-lock.json
electron/package-lock.json
- name: Frontend suite
if: always()
shell: bash
working-directory: frontend
run: npm ci && npm test
- name: Electron suite
if: always()
shell: bash
working-directory: electron
run: npm ci && npm test