ci: add release and crate-publish workflows #2
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/MCPWEB-2-publish-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Add the release and crate-publish pipeline so
mcp-webcan be deployed as a versioned crate on the Pandora's Box Forgejo Cargo registry (dev.a8n.run). Implements MCPWEB-2, which is the sole remaining gate on MCPWEB-1 (the youtrack-mcp adoption cannot commit until the crate is publishable, since its docker/CI cannot resolve a sibling path dependency).Changes
.forgejo/workflows/create-release.yml: on a mergedrelease/v*PR, create thevX.Y.Ztag and Forgejo release from the branch name plus a git-log changelog, then dispatchpublish-crates.ymlfor the tag. The tag is created via the Forgejo API, which raises no tag-push event, so the publish is dispatched explicitly rather than relying on the tag trigger. Ported frompandoras-box/youtrack-cliwith the dispatch step added..forgejo/workflows/publish-crates.yml: on av*tag push or manualworkflow_dispatch(ref), verify the tag matchesCargo.tomlpackage.version, thencargo publish --registry pandoras-box-cargo --locked. Auth via step-scopedCARGO_REGISTRIES_PANDORAS_BOX_CARGO_TOKEN(Bearer+ thewrite:packagePAT; the prefix is mandatory or the registry returns 401). Ported frompsa-systems/vervain-agent, reduced to the single generic crate..cargo/config.toml: define thepandoras-box-cargoregistry alias (sparse indexsparse+https://dev.a8n.run/api/packages/pandoras-box/cargo/).Cargo.tomlsetspublish = ["pandoras-box-cargo"]so the crate can never be published to crates.io..cargo/config.toml.The release-authoring half (
just create-release <major|minor|hotfix>) already ships via thecommonsubmodule and needs no change; it opens therelease/vX.Y.ZPR these workflows react to.Config prerequisites (owner)
These must exist on the repo/org for the workflows to run green:
PANDORAS_BOX_PRIVATE_PACKAGE_PATwithwrite:packagescope (used bypublish-crates.yml).FORGEJO_PATwith repo scope (used bycreate-release.ymlto create the release and dispatch the publish).RUNS_ON_OPENSUSE_BASE_LATEST(already used bycheck.yml).Verification
just pre-commitgreen: fmt + clippy-D warnings+ build + 112 tests.cargo verify-projectpasses;cargo metadatareportspublish: ["pandoras-box-cargo"].0.1.0: after merge, runfj actions dispatch publish-crates.yml main -I ref=v0.1.0(there is nov0.1.0tag yet; the automatic path applies from the nextjust create-release).#MCPWEB-2