c12i / mpesa-rust

A MPESA API sdk in Rust
https://c12i.github.io/mpesa-rust/mpesa/index.html
MIT License
43 stars 14 forks source link

Add release-plz ci workflow #93

Closed c12i closed 8 months ago

c12i commented 9 months ago

This MR overhauls how the release process is handled.

We now leverage release-plz to handle crate releases and CHANGELOG generation.

Proposed workflow.

  1. Run release-pr locally: this involves running release-plz release-pr locally with a GITHUB_TOKEN (This action should ideally only be limited to repo maintainers). This should open a release PR with semver version bumps based on conventional commits prior to this PR via git cliff (handled automatically) by release-plz
  2. Push release tag: Same as what was done before, run git tag v* locally and push the tag.
  3. Draft Release: Draft a release for the pushed tag. The content of this release can be derived from the generated CHANGELOG from release-plz.
  4. Publish release: Publish the draft release to trigger the release ci workflow that will now publish the crate to crates.io and run other workflows i.e update gh pages docs.

Caveats