Skip to content

Latest commit

 

History

History
69 lines (51 loc) · 1.92 KB

File metadata and controls

69 lines (51 loc) · 1.92 KB

Release & Packaging

Local Snapshot (No Publish)

goreleaser release --snapshot --clean

Output artifacts are written under dist/:

  • mcpx_<version>_<os>_<arch>.tar.gz
  • checksums.txt

GitHub Release + Homebrew Cask

Tag pushes that match v* trigger .github/workflows/release.yml.

git tag v0.1.0
git push origin v0.1.0

The workflow:

  1. Builds/publishes release artifacts with GoReleaser
  2. Updates the Homebrew cask in lydakis/homebrew-mcpx
  3. Publishes mcpx-go to npm from packaging/npm with trusted publishing
  4. Publishes mcpx-go to PyPI from packaging/pypi

Required GitHub Secrets

  • GORELEASER_TOKEN: token with repo write access to:
    • lydakis/mcpx
    • lydakis/homebrew-mcpx
  • PYPI_API_TOKEN: PyPI token for the mcpx-go project
  • APPLE_DEVELOPER_ID_CERTIFICATE_P12_BASE64
  • APPLE_DEVELOPER_ID_CERTIFICATE_PASSWORD
  • APPLE_DEVELOPER_ID_APPLICATION
  • APP_STORE_CONNECT_API_KEY_P8
  • APP_STORE_CONNECT_KEY_ID
  • APP_STORE_CONNECT_ISSUER_ID

Notarization uses standard Apple Developer and App Store Connect secrets configured in GitHub Actions.

GoReleaser uses:

  • GITHUB_TOKEN (auto-provided by Actions) for release assets on the source repo
  • HOMEBREW_TAP_GITHUB_TOKEN (mapped from GORELEASER_TOKEN) for tap updates
  • native notarize.macos signing/notarization before archiving darwin binaries.

Distribution package publishing uses:

  • scripts/publish_npm_wrapper.sh <version>
  • scripts/publish_pypi_wrapper.sh <version>

npm Trusted Publishing

Configure mcpx-go on npm with this GitHub Actions trusted publisher:

  • Repository: lydakis/mcpx
  • Workflow filename: release.yml
  • Allowed action: npm publish

The release job requests a short-lived OIDC credential, so no long-lived npm token is stored in GitHub. npm publishes provenance automatically for the public package.

Install After Release

brew tap lydakis/mcpx
brew install --cask mcpx