SIGN IN SIGN UP

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