Skip to content

Create release pipeline #13

Description

@xico42

Problem

This project does not have any release pipeline, or means for building binaries for public use, which makes it harder for other people to test it properly and contribute back to the project.

Goal

Create a "semi-automatic" release pipeline with support for changelogs and github releases.

The expected workflow for releasing new versions is:

  • Using creating-release skill to generate changelog
  • Merging
  • Triggering the build pipeline

Approach

Create the creating-release skill that:

  • analyses existing changelog, lists the diff from current branch and the last released tag, and create the changelog entries following guidelines from: https://keepachangelog.com/en/1.1.0/
  • analyses those unreleased commits and propose the next tag that better matches semantic versioning principles: https://semver.org/
  • bumps the next tag in a file called VERSION
  • Generates release notes under docs/release-notes/-technical.md and docs/release-notes/-user.md-
  • Commits all this with chore: bump version xxxx.

After merging, whenever that VERSION file is updated/bumped, a github workflow triggers the release pipeline that:

  • Builds binaries for the supported platforms (linux, macos, bsd, solaris)
  • Create a new github release using the generated technical release note as content
  • Appends all the built artifacts

Additional Context

Skills that provide some parts of the proposed workflow:

Acceptance Criteria

  • The first release of this project, starting at 0.1.0
  • The release format should be compatible with mise github backend.

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