bump-everywhere
Actions🚀 Automate versioning, changelog creation, README updates and GitHub releases using GitHub Actions,npm, docker or bash.
Allows you to automatically:
- Bump your sematic git tag by increasing the patch version
- Create & commit a changelog file
- If
npm
project then bumppackage.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
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.
- uses: undergroundwires/bump-everywhere@master
with:
# Repository name with owner to bump & release. For example, undergroundwires/bump-everywhere
# (Optional) Default: ${{ github.repository }}
repository: ''
# Name of the user who will do the bump commit
# (Optional) Default: ${{ github.actor }}
user: ''
# Commit message that will be used in the bump commit
# (Optional) Default: ⬆️ bump everywhere to {{version}}
commit-message: ''
# Personal access token (PAT) used to clone & push to the repository.
# If you use default, it'll not trigger other actions, but your own PAT then it triggers new actions
# (Optional) Default: ${{ github.token }}
git-token: ''
# The type of the GitHub release
# Options: 'release' | 'prerelease' | 'draft' | 'none' (does not release)
# (Optional) Default: 'release'
release-type: ''
# Personal access token (PAT) used to release to GitHub.
# Used only if release-type is not "none"
# If you use default, it'll not trigger other actions, but your own PAT then it triggers new actions
# (Optional) Default: ${{ github.token }}
release-token: ''
With installation:
npm install -g bump-everywhere # or "npm install bump-everywhere --save-dev" for local installations
bump-everywhere --repository "undergroundwires/privacy.sexy" --user "bot-commiter-name" --git-token "PAT_TOKEN" --relase-type "release" --release-token "PAT_TOKEN" --commit-message "⬆️ Bump everywhere"
Or without installation you can directly run it using npx bump-everywhere <parameters...>
-
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
- Pull from docker hub using
-
Run with arguments:
docker run undergroundwires/bump-everywhere \ "undergroundwires/privacy.sexy" \ "bot-user" \ "GitHub PAT for pushes" \ "prerelase" \ "GitHub PAT for releases" \ "⬆️ bump to {{version}}"
-
Ensure
bash
(4 or newer),git
,curl
,jq
exists in your environment- run e.g.
apk add bash git curl jq
- run e.g.
-
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
- or optionally add this repository as git submodule:
-
Call the script as following :
bash "scripts/bump-everywhere.sh" \ --repository "undergroundwires/privacy.sexy" \ --user "bot-commiter-name" \ --git-token "PAT_TOKEN" \ --release-type "draft" \ --release-token "PAT_TOKEN" \ --commit-message "⬆️ bump to {{version}}"
- You manually tag your last commit to update major & minor versions.
- E.g.
git commit -m "bumped version to 1.2.0" --allow-empty
git tag 1.2.0
git push && git push origin 1.2.0
You can also use following scripts individually (check script files for usage, prerequisites & dependencies):
- bump-and-tag-version.sh: Automate versioning.
- create-github-release.sh: Automate creating GitHub releases
- print-changelog.sh: Automate creation of changelogs, e.g.
CHANGELOG.md
. - configure-github-repo.sh: Set-up CI/CD user for current repository.
- log-commits.sh: Filters & logs commits as bullet points in markdown form.
- bump-npm-version.sh: Updates
packages.json
to match the latest version. - bump-readme-versions.sh: Updates old references to
README.md
to the latest version.
- bump-everywhere: Repository itself is automatically versioned & released using its own action
- privacy.sexy
- safe-email
- ez-consent
- aws-static-site-with-cd
CI/CD is fully automated for this repo using different GIT events & GitHub actions.
- Give it a star ⭐
- Feel free to use the badge in the
README.md
of repository where you use bump-everywhere:
[![Auto-versioned by bump-everywhere](https://github.com/undergroundwires/bump-everywhere/blob/master/badge.svg?raw=true)](https://github.com/undergroundwires/bump-everywhere)
bump-everywhere is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.