bump-everywhere
🚀 Automate versioning, changelog creation, README updates and GitHub releases using GitHub Actions,npm, docker or bash.
Features
🤖 Allows you to automatically:
- Bump your semantic git tag by increasing the patch version.
- Create & commit a changelog file.
- If
npm
project then bump package.json
version and commit. - Check
README.md
file, if it has references to older version, update with never version. - Create a release on GitHub with auto-generated release notes.
✅ Other features include:
- Zero-configuration for most use-cases, but can still be customized.
- It supports safe re-runs, it means that if you can run it for an already bumped or tagged repository, it'll not increase the version as everything is still up-to-date. It protects against recursive runs.
Usage
Option 1. Use GitHub actions
- uses: undergroundwires/bump-everywhere@master
with:
repository: ''
user: ''
commit-message: ''
git-token: ''
release-type: ''
release-token: ''
branch: ''
↑
Option 2. Use Docker
-
To get the image you can either:
- Pull from docker hub using
docker pull undergroundwires/bump-everywhere:latest
- Or build image yourself using
docker build . --tag undergroundwires/bump-everywhere:latest
-
Run with arguments:
args=(
--repository "undergroundwires/privacy.sexy"
--user "bot-user"
--git-token "GitHub PAT for pushes"
--release-type "prerelease"
--release-token "GitHub PAT for releases"
--commit-message "⬆️ bump to {{version}}"
--branch 'custom branch name'
)
docker run undergroundwires/bump-everywhere "${args[@]}"
↑
Option 3. Use npm
- (Optionally) install globally:
npm install -g bump-everywhere
- or locally:
npm install bump-every-where --save-dev
- Run
npx bump-everywhere <parameters...>
↑
Option 4. Use scripts
- Ensure
bash
(4 or newer), git
, curl
, jq
exists in your environment
- On Alpine:
apk add bash git curl jq
- On Windows:
choco install git curl jq
and use Git Bash
- Clone this repository:
git clone https://github.com/undergroundwires/bump-everywhere
- or optionally add this repository as git submodule:
git submodule add https://github.com/undergroundwires/bump-everywhere
- Call the script:
bash "scripts/bump-everywhere.sh" <parameters>
↑
Updating minor & major versions
bump-everywhere only increases your patch versions. You manually tag your last commit to update major & minor versions.
E.g. :
git commit -m "bumped version to 1.4.0" --allow-empty
git tag 1.4.0
git push && git push origin 1.4.0
↑
All scripts
You can also use following scripts individually (check script files for usage, prerequisites & dependencies):
↑
Some example usages
↑
Support
Sponsor 💕. Consider one time or recurring donation on GitHub Sponsors or any other way (undrgroundwires.dev/donate), every penny you leave will help development and maintenance of the project .
Star 🤩. If you do cannot do that you can just give it a star ⭐ . It helps me to see that the project is appreciated.
Badge 📛. If you use the project, feel free to use the badge in the README.md
of repository where you use bump-everywhere so we can have larger community that can help improving the project. It would look like ). You can add following in your markdown file:
[![Auto-versioned by bump-everywhere](https://github.com/undergroundwires/bump-everywhere/blob/master/badge.svg?raw=true)](https://github.com/undergroundwires/bump-everywhere)
↑
GitOps
CI/CD is fully automated for this repo using different GIT events and GitHub actions.
↑