build(release): add macOS notarization and Windows code signing (#243)
Brings the release pipeline to parity with backend.ai-go's packaging workflow so published artifacts are trusted by Gatekeeper and SmartScreen out of the box. macOS: - After the existing codesign step, submit a ditto'd zip of the binary to `xcrun notarytool submit --wait` using the App Store Connect API key (AC_API_KEY_ID / AC_API_ISSUER_ID / AC_API_PRIVATE_KEY_P8 secrets already configured in the `packaging` environment). - On Invalid/Rejected, fetch `notarytool log` for diagnostics before failing. - Verify with `spctl --assess --type execute`; treat ticket-propagation lag as a warning, not a hard failure. - Stapling is intentionally skipped — `xcrun stapler` only operates on .app/.dmg/.pkg containers, not on bare Mach-O executables. Gatekeeper verifies the ticket online at first launch instead. - API key file is written to `$RUNNER_TEMP` with chmod 600 and removed unconditionally via `trap`. Windows: - Switch the matrix entry from `windows-latest` to the self-hosted `windows-on-macmini02-x64` runner that already hosts the signing certificate in its Windows Certificate Store (same runner used by backend.ai-go). - Sign all-smi.exe with `signtool sign /tr http://ts.ssl.com/ /td sha256 /fd sha256 /a` before the `Compress-Archive` step so the released zip contains the signed binary. - Verify with `signtool verify /pa` (warn-only on transient verification failure). - Pin CARGO_HOME / RUSTUP_HOME to persistent paths outside GITHUB_WORKSPACE so the registry survives workspace cleanup; skip the actions/cache step on this runner since the persistent paths already handle it. Closes #242
J
Jeongkyu Shin committed
6c4f217c4cac0f8ec531a5066372ed7fcd5e1ebc
Parent: ab910d0
Committed by GitHub <noreply@github.com>
on 5/26/2026, 4:56:57 PM