Skip to content

ci: release-please and release binaries #12

Closed

Description

@erikist

Part of #2. Release automation, matching Go's release-please.yml, release-please-config.json and build-release.yml at 9e072f9.

Do

  • release-please:
    • release-please-config.json with release-type: rust, include-v-in-tag: true, bump-minor-pre-major: true and bump-patch-for-minor-pre-major: true, for the plugin crate.
    • .release-please-manifest.json starting at 0.0.0.
    • The workflow runs on pushes to main, using the TOKEN_BOT_GITHUB_TOKEN secret like Go's, so that release PRs trigger CI.
    • Use extra-files (or a workspace setup) if needed so the plugin's Cargo.toml version and Cargo.lock are bumped together.
  • Release binaries: on release: created, build protoc-gen-rust-mcp for linux, macos and windows × x86_64 and aarch64 (native runners or cross), and attach .tar.gz (or .zip on windows) archives plus a SHA-256 checksums file to the release.
    • The binary's --version must report the released version.
  • This issue asks you to change .github/workflows/**. Don't publish to crates.io (out of scope).

Acceptance criteria

  • actionlint (or an equivalent) is clean on the new workflows.
  • The release-binaries workflow can also be triggered with workflow_dispatch as a dry run that uploads the archives as workflow artifacts. Run it once on the PR branch and link the run.
  • If the TOKEN_BOT_GITHUB_TOKEN secret isn't available in this repo, say so in the PR and ask (factory:question); don't fall back silently to GITHUB_TOKEN.

Activity

  1. erikist commented on Oct 9, 2026

    @erikist
    ContributorAuthor

    🤖 Factory: picked up by dispatcher; working on branch factory/12-ci-release-please-and-release-binaries.

  2. erikist commented on Oct 9, 2026

    @erikist
    ContributorAuthor

    🤖 Factory: opened PR #17 with the release-please and release-binaries workflows.

    Two things from the acceptance criteria need a maintainer's input (details in the PR body):

    1. TOKEN_BOT_GITHUB_TOKEN doesn't exist as a repository secret today (0 repo secrets found via the API; I can't check org-level secrets). The workflow fails fast with a clear error rather than falling back to the default token — could someone confirm/add the secret?
    2. The workflow_dispatch dry run can't be exercised before this PR merges — GitHub only allows dispatching workflow files that already exist on the default branch. I'll trigger it against main right after merge and link the run.

    See #17 for the full summary, test evidence, and design decisions (notably using release-type: "simple" + extra-files instead of "rust", due to an open upstream release-please bug with version.workspace = true).

  3. erikist commented on Oct 9, 2026

    @erikist
    ContributorAuthor

    🔍 Post-merge dry run of release-binaries.yml on main (workflow_dispatch): https://github.com/stablekernel/protoc-gen-rust-mcp/actions/runs/37981192010. All 6 platform builds and package succeeded, and release-archives was uploaded with the archives and checksums.txt. Still to do: a maintainer adds TOKEN_BOT_GITHUB_TOKEN to the release environment. Until then, release-please fails on every push to main, by design.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    factory:in-progressAn sf-factory worker is on itfactory:readyReady for the sf-factory to pick up

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions