A minimal, no-dependency Bash utility for managing semantic version releases in Git projects.
- Auto-bumps
major,minor, orpatchversions. - Supports pre-releases (
--beta). - Cleans up stale or conflicting local tags (
--clean-tags). - Automatically updates package manager files (package.json, Cargo.toml, pyproject.toml, etc.).
- Works on any Git repository with zero setup.
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bashRun your first release:
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash -s patchCreate a beta release:
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash -s patch --betaClean up local tags before releasing:
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash -s patch --clean-tagsPatch release
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash patchMinor release
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash minorMajor release
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash majorBeta release sequence
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash patch --beta # v1.2.3-beta.1
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash patch --beta # v1.2.3-beta.2
curl -fsSL https://raw.githubusercontent.com/tobimadehin/release/main/release.sh | bash patch # v1.2.3 (final)name: Release Build
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build project
run: make buildMIT License — see LICENSE for details.