Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/s0ders/go-semver-release
Go program designed to automate semantic versioning of Git repository by analyzing their formatted commit history and tagging them with the right semver.
https://github.com/s0ders/go-semver-release
ci cicd semver semver-release versioning
Last synced: about 1 month ago
JSON representation
Go program designed to automate semantic versioning of Git repository by analyzing their formatted commit history and tagging them with the right semver.
- Host: GitHub
- URL: https://github.com/s0ders/go-semver-release
- Owner: s0ders
- License: mit
- Created: 2022-12-05T13:30:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-02-17T14:28:15.000Z (over 1 year ago)
- Last Synced: 2024-03-14T23:06:41.417Z (3 months ago)
- Topics: ci, cicd, semver, semver-release, versioning
- Language: Go
- Homepage:
- Size: 208 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Lists
- awesome-go - go-semver-release - Automate the semantic versioning of Git repositories. (Continuous Integration / Standard CLI)
- awesome-go-with-stars - go-semver-release - Automate the semantic versioning of Git repositories. (Continuous Integration / Standard CLI)
- awesome-go - go-semver-release - Automate the semantic versioning of Git repositories. (Continuous Integration / Standard CLI)
- awesome-go - go-semver-release - Automate the semantic versioning of Git repositories. (Continuous Integration / Standard CLI)
README
[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go)
![GitHub Tag](https://img.shields.io/github/v/tag/s0ders/go-semver-release?label=Version&color=bb33ff)
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/s0ders/go-semver-release)
[![Go Reference](https://pkg.go.dev/badge/github.com/s0ders/go-semver-release.svg)](https://pkg.go.dev/github.com/s0ders/go-semver-release/v2)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/s0ders/go-semver-release/main.yaml?label=CI)
[![Go Report Card](https://goreportcard.com/badge/github.com/s0ders/go-semver-release/v2)](https://goreportcard.com/report/github.com/s0ders/go-semver-release/v2)
![Codecov](https://img.shields.io/codecov/c/github/s0ders/go-semver-release?label=Coverage)
![GitHub License](https://img.shields.io/github/license/s0ders/go-semver-release?label=License)# Go Semver Release
Go program designed to automate versioning of Git repository by analyzing their formatted commit history and tagging
them with the right [SemVer](https://semver.org/spec/v2.0.0.html) number.
## Motivation
This project was built to create a lightweight and simple tool to automate the semantic versioning on your Git
repository in a language and CI agnostic way by following strictly the Semantic Versioning convention.
Following the UNIX philosophy of "make each program do one thing well", it only handles publishing SemVer tags to your
Git repository, no package publishing or any other features.
All you need have is an initialized Git repository, a release branch (e.g., `main`) and a formatted commit history on
that branch following the [Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0/) specification. Many IDEs
support plugins to help in formatting your commit messages (e.g., [VSCode](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits), [IntelliJ](https://plugins.jetbrains.com/plugin/13389-conventional-commit)).
> [!IMPORTANT]
> `go-semver-release` can only read **annotated** Git tags. If at some point you need to manually add a SemVer tag your
> repository, make sure it is annotated, otherwise the program will not be able to detect it.
## Install
If [Go](https://go.dev) is installed on your machine, you can install from source:
```bash
$ go install github.com/s0ders/go-semver-release@latest
$ go-semver-release --help
```
For cross-platform compatibility, you can use the generated [Docker image](https://hub.docker.com/r/s0ders/go-semver-release/tags):
```bash
$ docker pull s0ders/go-semver-release:latest
$ docker run --rm s0ders/go-semver-release --help
```
## Usage
Documentation about the CLI usage can be found [here](docs/usage.md).
## CI workflow examples
This tool is voluntarily agnostic of which CI tool is used with it. Examples of workflows with various CI tools can be
found [here](docs/workflows.md).`