CI: set up macOS build & publish pipeline #165
Reference in New Issue
Block a user
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?
Context
Windows builds are now automated via
.github/workflows/build-windows.yml(signed with Azure Trusted Signing, published to GCS). macOS releases are still cut manually from a dev machine (yarn publish:mac), which relies on:notarytoolkeychain profile nameddefaultWe should bring macOS to parity with Windows so releases are reproducible, don't depend on one laptop, and survive cert/profile changes.
Scope
.github/workflows/build-mac.ymlrunning onmacos-latestfor botharm64andx64.apple-actions/import-codesign-certs@v3)..p8+ Key ID + Issuer) — env-var-based, notkeychainProfile.PROD_GKE_SERVICE_ACCOUNT_KEYsecret; publish via@electron-forge/publisher-gcs.RELEASES.jsoncache fordarwin/arm64anddarwin/x64after publish.Changes required
js/forge.config.tsSwitch
osxNotarizeto prefer env-var-based API-key credentials when present, falling back to the localkeychainProfile: 'default'soyarn publish:macfrom a dev machine keeps working:osxSign: {}auto-discovers from the keychain and needs no change — it works in both the local keychain and a temp CI keychain.js/package.jsonCurrent
publish:machas an interactiveread -r answerversion-bump prompt that will hang CI. Open question — pick one:package.jsonbefore pushingv*tags and assert the tag matchespackage.jsonversion in CIpublish:macfor local; add non-interactivepublish:mac:ciNew GitHub secrets
APPLE_CERT_P12_BASE64— base64 of the exported Developer ID.p12APPLE_CERT_PASSWORD— the.p12export passwordAPPLE_API_KEY_P8_BASE64— base64 of the App Store Connect API key.p8APPLE_API_KEY_ID— 10-char key IDAPPLE_API_ISSUER— issuer UUIDGotchas
.p12export must include the private key, not just the cert.Out of scope
gsutil setmetaapproach is fine.