Skip to content

feat(release): sign and notarize macOS CLI through BK-CI - #508

Merged
iuyo5678 merged 3 commits into
mainfrom
codex/macos-signing
Oct 28, 2026
Merged

iuyo5678 merged 3 commits into
mainfrom
codex/macos-signing

Conversation

@iuyo5678

@iuyo5678 iuyo5678 commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Mac CLI releases currently contain unsigned executables. This change adds Developer ID signing and Apple notarization through internal BK-CI, and makes GitHub publish a release only after independently verifying both Windows and Mac results. Apple credentials and the signing key remain on the internal Mac node; existing archive names and installation paths are preserved.

The Mac helper validates the tag, source workflow, run attempt and artifact digests, checks that signing preserves the Mach-O program bytes, validates Apple's ticket coverage, and resumes a pending notarization submission on retry. Completed signing retries revalidate and reuse the exact bundle and manifest, including after a lost upload response. Publishing downloads the artifact IDs returned by each verification job, so partial reruns retain successful Windows/Linux or Mac packages from earlier attempts. Both OS handoffs share one draft release, with Windows owning draft creation. Final publication checks matching build identities, packages the verified bytes, and regenerates checksums.

Includes an internal pipeline template, a verification-only mode that cannot modify GitHub releases, and setup/recovery documentation.

Validation:

  • Ten Mac protocol tests (including upload-response loss, archive-failure recovery and corrupted-cache rejection), eight Windows protocol tests, release-manifest test, YAML parsing and actionlint passed locally.
  • Internal verification-only run against both official 0.3.3 Mac build artifacts passed Tencent Developer ID, secure timestamp, Hardened Runtime, Apple notarization Accepted, ticket/CDHash coverage and online notarization checks.
  • Archived arm64 and Intel binaries were rechecked against the original build files; arm64 bsk --version passed. No published release was modified.
  • All CI checks passed for a36088d. The unchanged Windows remote-server test initially hit Access is denied while pairing; that job passed on an isolated retry without code changes.

Merged into main at 9c7557a. BK-CI formal configuration V3(P3.T2.3) is published with the helpers pinned to that merge commit; the signing helpers and publishing workflows are identical to the tested PR version. The GitHub Create Branch Or Tag trigger is enabled for Tencent/BrowserSkill with filter cli-v*, and manual recovery remains enabled. The earlier V2 verification-only run passed with unchanged signed-bundle and manifest hashes. No application tag or public release was created during setup; automatic tag-to-publication execution remains to be verified on the next authorized CLI release.

@iuyo5678
iuyo5678 marked this pull request as ready for review October 28, 2026 06:22
@iuyo5678
iuyo5678 merged commit 9c7557a into main Oct 28, 2026
20 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants