Use ci-toolkit sign_and_notarize for CLI signing#100
Conversation
Replace the inline codesign + notarytool block with the shared `sign_and_notarize` command from the a8c-ci-toolkit plugin. The build (swift, lipo, strip) and cert delivery (`fastlane set_up_signing` in release-cli.sh) are unchanged; only the sign+notarize step is delegated. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Points the toolkit plugin at `mokagio/macos-sign-and-notarize` so CI exercises the unreleased `sign_and_notarize` command. Revert to a released tag before merging. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
📝 WalkthroughWalkthroughThe PR refactors the macOS signing and notarization workflow to delegate signing to an external ChangesSigning and Notarization Delegation
🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
| CI_TOOLKIT_PLUGIN_VERSION='6.0.1' | ||
| # TEMPORARY: pinned to the branch adding the macOS `sign_and_notarize` command. | ||
| # Revert to a released tag (>= the version that ships it) before merging. | ||
| CI_TOOLKIT_PLUGIN_VERSION='mokagio/macos-sign-and-notarize' |
There was a problem hiding this comment.
Merge blocker: plugin pinned to a moving branch ref. Buildkite resolves automattic/a8c-ci-toolkit#mokagio/macos-sign-and-notarize at run time, so once the upstream PR lands and this branch is force-pushed/rebased/deleted, the release-cli step will either start picking up unrelated changes or fail outright (the command -v sign_and_notarize guard in scripts/sign-and-notarize-cli would then trip and exit 1). Replace with a released tag (e.g. '6.0.2' or whatever ships bin/sign_and_notarize) before merging, and consider renaming the env var since CI_TOOLKIT_PLUGIN_VERSION no longer holds a version while this temp pin is in place.
Restore the post-sign diagnostic (`codesign --display` filtered to Authority, TeamIdentifier, Signature, flags, Hash) that the inline platform-imessage script had. Keeps the build log showing which Developer ID cert actually applied — useful when confirming the signer after a Gatekeeper rejection. Raised on beeper/platform-imessage#100; upstreamed here so every consumer benefits. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This avoids issue if/when the branch is deleted post merge
There was a problem hiding this comment.
Pull request overview
Refactors the CLI release signing/notarization flow to delegate macOS signing + notarization to the shared sign_and_notarize command provided by the a8c-ci-toolkit Buildkite plugin, using this repo as an end-to-end CI proving ground.
Changes:
- Replace the custom codesign +
notarytoollogic inscripts/sign-and-notarize-cliwith a singlesign_and_notarizeinvocation (and a PATH check). - Temporarily pin the
a8c-ci-toolkitBuildkite plugin to a specific commit SHA that adds thesign_and_notarizecommand.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| scripts/sign-and-notarize-cli | Delegates signing/notarization to sign_and_notarize after building and stripping the CLI binary. |
| .buildkite/shared-pipeline-vars | Pins the CI toolkit plugin to a specific commit SHA to obtain the new signing command. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # TEMPORARY: pinned to a commit on the `mokagio/macos-sign-and-notarize` branch | ||
| # adding the macOS `sign_and_notarize` command. Revert to a released tag | ||
| # (>= the version that ships it) before merging. | ||
| CI_TOOLKIT_PLUGIN_VERSION='6848c743aa50e332ec95809cf2c50eaf00cfcf1e' |
There was a problem hiding this comment.
Safe to ignore. The "before merging" might have been a bit too eager. It would be fine to merge and follow up with a small PR that moves this to a tag.
Test bed for Automattic/a8c-ci-toolkit-buildkite-plugin#210.
Refactors
scripts/sign-and-notarize-clito delegate signing + notarization to the new sharedsign_and_notarizeci-toolkit command.The CI run here is the real end-to-end proof that the shared command signs + notarizes a macOS binary on a Buildkite mac agent.
Opened by Claude (Opus 4.8) on behalf of @mokagio with approval.