Skip to content

Add automatic release workflow #39

@RAprogramm

Description

@RAprogramm

Add automatic release workflow to publish new versions to crates.io without manual intervention.

Problem

Currently, releasing a new version requires:

  1. Manually updating version in Cargo.toml
  2. Manually creating a git tag
  3. Manually pushing the tag to trigger release workflow

This is error-prone and slows down the release process.

Solution

Implement automatic release workflow similar to masterror that:

  1. Triggers after successful CI on main branch
  2. Compares local Cargo.toml version with crates.io version
  3. If local version > crates.io version:
    • Checks if tag/release already exists
    • Generates changelog from conventional commits
    • Creates git tag
    • Creates GitHub Release with changelog
    • Triggers existing release.yml workflow

Implementation

Create .github/workflows/auto-release.yml:

  • Workflow trigger: after CI completion on main
  • Compare versions using semver
  • Group commits by type (feat, fix, docs, etc.)
  • Generate formatted changelog
  • Create annotated git tag
  • Create GitHub Release
  • Automatic crates.io publish via existing release.yml

Benefits

  • Automated release process
  • No manual version bumping needed
  • Automatic changelog generation
  • Faster releases
  • Conventional commits enforcement
  • Professional release notes

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions