* Cache Swift packages across CI runs
Add actions/cache for the SPM cloned source packages directory so
subsequent runs skip fetching Sparkle, sentry-cocoa, swift-markdown-ui,
posthog-ios, and NetworkImage from GitHub each time.
- nightly/release: replace the no-op SwiftPM cache step with
actions/cache + -clonedSourcePackagesDirPath on xcodebuild
- ci/ci-macos-compat/test-e2e: add actions/cache before the existing
resolve step, stop deleting the cache dir each run
* Include runner in test-e2e cache key
Consistent with ci-macos-compat.yml which uses matrix.os in the key.
- Grant kTCCServiceScreenCapture in system-level TCC database (sudo)
and pre-date ScreenCaptureApprovals.plist to suppress Sequoia's
private window picker dialog
- Move recording start to right before xcodebuild test (skip build time)
- Trim leading black frames from video using ffmpeg blackdetect
- Add runner input: macos-15 (Sequoia) or macos-26 (Tahoe)
* Install ffmpeg via brew for screen recording
macos-15 GitHub runners don't have ffmpeg pre-installed.
* Clean up ffmpeg device detection and add fallback
Suppress noisy device listing errors, add fallback to index 1 if
detected index fails, upgrade warning to error on total failure.
* Add E2E test workflow with video recording and issue posting
New workflow_dispatch workflow (test-e2e.yml) that runs XCUITests on
GitHub-hosted macos-15 runners, records the virtual display, uploads the
video as an artifact, and posts results as an issue on cmux-dev-artifacts.
Includes scripts/run-e2e.sh for convenient triggering from the terminal.
* Print issue URL in workflow annotation and run-e2e.sh output
- Capture gh issue create output URL, print as ::notice annotation
- Search issues by run ID instead of grabbing most recent