P0-4: Mac and Windows CI runners #19
Labels
No labels
data-integrity
engine
platform
procurement
remote
scaffold
ui
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Cordy/cairn-desktop#19
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Manual task. Needed before Phase 3 packaging (issues P3-*). Not needed for Phase 1 or 2.
The constraint
The existing Forgejo runner is Alpine on arm64 Raspberry Pis. It can build and test the Go core and the Linux binary. It cannot build, sign or notarise macOS, iOS or Windows artifacts.
Mac runner
A Mac is non-negotiable. Apple's licence terms permit macOS only on Apple hardware, so this cannot be virtualised on pve1/pve2. Two options:
Buy a Mac mini (Apple silicon). ~CHF 700+. One-off, sits in the rack, becomes a self-hosted Forgejo runner. Preferred: you own the signing environment and the Developer ID key never leaves your premises.
Rent a hosted Mac (MacStadium, Scaleway, etc.). No capital outlay, but your Developer ID private key lives on someone else's hardware. For a sovereignty-positioned product, that is an awkward look.
Decide and acquire.
Install Xcode command line tools (
xcode-select --install) — needed forcodesign,notarytool,stapler.Register it as a self-hosted Forgejo runner with a label such as
macos.Install the Developer ID Application certificate into its keychain.
Store notary credentials once:
xcrun notarytool store-credentials "cairn-notary" --apple-id … --team-id … --password …Windows runner
This one can be a VM on pve1/pve2.
signtool).windows.Target CI topology
Acceptance criteria
codesignandnotarytool submitwithout human interaction.