feat: IPSW detection cron and VNC Setup Assistant automation#29
feat: IPSW detection cron and VNC Setup Assistant automation#29celanthe wants to merge 7 commits into
Conversation
9dc5f82 to
0f9a53e
Compare
- check-ipsw-updates.yml: daily cron that polls ipsw.me for new stable VirtualMac2,1 firmwares and opens a PR when a new version is found - ipsw-versions.json: tracks the last known stable version per macOS (tahoe, sequoia, sonoma) — updated by the cron workflow - vnc-setup-assistant.py: automates macOS Setup Assistant via VNC on fresh IPSW VMs, covering tahoe, sequoia, and sonoma; adapted from Cirrus Labs macos-image-templates boot_command sequences Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
8f2256b to
6bdd3fb
Compare
Testing notes (local, pre-merge)Ran the detection logic locally against live SOFA and Apple catalog data. A few findings: Detection works correctly. All three versions (tahoe, sequoia, sonoma) are currently stale and would correctly trigger an update PR. The version and buildid lookups from SOFA are accurate. Buildid mismatch bug found and fixed. SOFA reported tahoe build `25F71` but Apple's catalog has `25F80` for the same release. The original exact-match lookup returned an empty URL for tahoe as a result. Fixed in the latest commit by falling back to a build prefix match (first 2 chars of buildid) when the exact match fails. Verified the fix resolves the correct `updates.cdn-apple.com` URL for tahoe. Sequoia and sonoma return empty URLs as expected (no VirtualMac2,1 entry in Apple's catalog for those). What's verified:
What still needs CI (post-merge):
`workflow_dispatch` can't be triggered from a non-default branch, so the PR-opening flow test is blocked until merge. Plan is to trigger immediately after merge. |
|
Is this ready for review btw? Is there anything that the test plan is waiting on? |
Summary
Buildid mismatch handling: SOFA and Apple's catalog don't always report the same buildid for the same release (e.g. SOFA: `25F71`, catalog: `25F80` for tahoe 26.5). The URL lookup does an exact buildid match first, then falls back to a prefix match (first 2 chars) if the exact match returns nothing. Sequoia and sonoma have no VirtualMac2,1 entry in Apple's catalog, so their URL fields are empty by design.
Test plan
Last two items are blocked until merge: `workflow_dispatch` can't run from a non-default branch. Plan is to trigger immediately after merge.