Skip to content

ci: make ClassScribe checks substantially faster - #9

Merged
Teyocesu merged 5 commits into
mainfrom
ci/fast-ci
Sep 21, 2026
Merged

Teyocesu merged 5 commits into
mainfrom
ci/fast-ci

Conversation

@Teyocesu

@Teyocesu Teyocesu commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • repairs the AudioTap resampler redeclaration without removing or weakening its assertions
  • splits ClassScribe, AudioTap, and Windows development gates into parallel jobs
  • replaces repeated build/package work with the minimum development checks
  • keeps release/distributable validation in release.yml
  • skips multiplatform builds for docs/** and Markdown-only changes

Real timings

Baseline is successful run #17. Final is green run #30 attempt 2; it used fresh hosted runners and no dependency/build cache.

Gate Before After Savings
macOS critical path 9m37s 1m25s 8m12s (85.2%)
macOS AudioTap serialized inside macOS 48s, parallel removed from ClassScribe critical path
Windows 3m54s 1m19s 2m35s (66.2%)
Workflow wall-clock 9m43s 1m35s 8m08s (83.7%)

The latest pre-change Windows run was 2m25s, so the final 1m19s is also 45.5% faster than the current baseline. One no-cache run hit a NuGet/network outlier (3m14s Windows; 3m19s workflow); an immediate identical rerun produced the final table above.

What changed

PR/main CI retains:

  • swift test for ClassScribe with complete strict concurrency
  • swift test for all AudioTap tests with complete strict concurrency
  • locked Windows restore
  • Windows Release compilation through dotnet test plus all 182 tests
  • explicit verification that global.json resolves a compatible installed SDK

Normal CI no longer repeats:

  • explicit SwiftPM resolve, Debug build, and Release build before swift test
  • Xcode Debug, Release, and Diarizer builds
  • development bundle assembly and codesign verification
  • Windows self-contained publish, native runtime validation, process smoke, portable staging, ZIP, and SHA256

release.yml still owns the exhaustive release build, distributable/DMG validation, Windows package and installer work, smoke checks, checksums, and final asset validation. It is unchanged.

Runner and cache evidence

  • macOS runner: 3 CPUs, 7 GiB RAM. Removing -j 2 let SwiftPM choose its own parallelism and passed.
  • Windows runner exposed SDK 10.0.303; global.json 10.0.302 with latestPatch resolved to 10.0.303 and passed. actions/setup-dotnet was removed.
  • No Swift cache was added: the simplified ClassScribe job already met the target.
  • A locked NuGet cache experiment was rejected: the archive was ~615 MB and a hit spent 33s restoring it, producing a 2m20s Windows job. The final workflow has no NuGet cache.
  • push/main remains for direct-push coverage; PR checks remain the everyday gate. No commit-message parsing was introduced.

Hidden AudioTap failures exposed

Once the redeclaration compiled, three stale assertions from earlier [skip ci] production changes became visible. Tests now assert the documented current contracts: an empty callback is a transport-health heartbeat, and two input frames remain two master frames before/after flush. Production behavior was not changed.

No tests were removed, skipped, or made continue-on-error.

@Teyocesu
Teyocesu merged commit 64ccdf4 into main Sep 21, 2026
6 checks passed
@Teyocesu
Teyocesu deleted the ci/fast-ci branch September 21, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant