ReleaseTools
A collection of tools to improve CI/CD workflows, streamline releases, and prevent deployment pitfalls.
ReleaseTools is an open-source suite of developer-focused utilities designed to make your continuous integration and deployment processes more reliable, efficient, and less error-prone.
Our Tools
🔐 Mutex
An advisory lock service for CI/CD workflows, implemented as a GitHub Action. Mutex helps prevent race conditions and ensures that critical sections of your pipeline are executed by only one job at a time.
Key Features:
- Advisory locking for GitHub Actions workflows
- Pull Request integration with automatic comments
- Slack notifications for locking events
- Easy disabling with labels or environment variables
🛠️ CLI
Release tools for bash workflows - a comprehensive toolkit of bash scripts for various CI/CD purposes including version management, release automation, and workflow utilities.
Key Features:
- Easy installation via curl, wget, or brew
- Modular bash script library
- GitHub Action integration
- Cross-platform compatibility
Get Started with the CLI tools →
📝 Release notes
An agent plugin that drafts a version's changelog entry from the commits since the last tag. Every commit is ruled against one test, can a person running the software observe it, and the ruling is on screen before a word of the entry is written.
Key Features:
- One ruling per commit, checked against that commit's own diff
- Keep a Changelog categories, newest release first
- Flags where a commit message and its diff disagree
- Writes the release body where a release can publish it
Get Started with the release notes plugin →
🚀 Release
An agent plugin that cuts a release one step at a time: the prechecks, the changelog entry, the version bump, the pull request and its checks, the merge, the wait for the merged commit to go green, and the tag that publishes.
Key Features:
- Each step is a command whose output you read, so a refusal says what refused
- The tag lands on a commit that passed after the merge, not on the branch's last green check
- Squash by default, because a branch requiring signed commits refuses a rebase merge
- One
.releasetools.yamlreleases a Python package, a Rust crate or one plugin of a monorepo
Get Started with the release plugin →
🛡️ Versions guard
A GitHub Action that fails a pull request when a project changed without moving its version far enough for what changed. How far follows from what the changes say they are, by Conventional Commits and Semantic Versioning.
Key Features:
- A fix asks for a patch, a feat for a minor, a breaking change for a major
- Compares against the newest release reachable from the commit, so a backport is not mistaken for it
- Reads a version out of package.json, pyproject.toml, Cargo.toml, Chart.yaml or a VERSION file
- Each project named once in
.releasetools.yaml, with its own manifests and changelog
Get Started with the versions guard →
📓 Changelog guard
A GitHub Action that fails a pull request which changes a project and writes nothing down about it.
Key Features:
- One heading rule, the same one the release publishes from
- Asks nothing of a project that keeps no changelog
- One label lets a pull request through, visibly
Get Started with the changelog guard →
Why ReleaseTools?
🎯 Developer-Focused
Built by developers, for developers. Our tools integrate seamlessly with existing workflows and follow industry best practices.
🔓 Open Source
All ReleaseTools projects are open source and licensed under Apache-2.0. Contribute, fork, or customize to fit your needs.
🚀 Production-Ready
Battle-tested in real-world scenarios. Our tools are designed for reliability and performance in production environments.
📖 Well-Documented
Comprehensive documentation with examples, best practices, and troubleshooting guides to get you up and running quickly.
Quick Start
Choose your tool and get started in minutes:
# Install CLI
bash <(curl -sSL "https://github.com/releasetools/cli/releases/download/v0.0.12/install.sh")
# Or use mutex in your GitHub Action
- uses: releasetools/mutex@v1
with:
command: "lock"
id: "my-resource"
# Or add the plugin marketplace to your coding agent
claude plugin marketplace add releasetools/agent-plugins
claude plugin install release-notes@release-tools
Community & Support
- GitHub Organization: https://github.com/releasetools
- Issues & Bug Reports: Use the individual repository issue trackers
- License: Apache-2.0
Ready to improve your CI/CD workflows? Explore our tools and start building more reliable deployments today!