Should Release-It
Check if should release new version by looking at the commits using conventional commits
🚩 Table of Contents
🚀 Introduction
When releasing using release-it you might want to release only if the commits messages have meaningful changes.
This script analyzes the commit messages using conventional commits
to check if a new release is necessary.
It looks for the @release-it/conventional-changelog
plugin and get the types defined there, the ones that are hidden will not trigger a release.
"plugins": {
"@release-it/conventional-changelog": {
"preset": "conventionalcommits",
"types": [
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "perf", "section": "Performance Improvements" },
{ "type": "revert", "section": "Reverts" },
{ "type": "docs", "section": "Documentation", "hidden": true },
{ "type": "style", "section": "Styles", "hidden": true },
{ "type": "chore", "section": "Miscellaneous Chores", "hidden": true },
{ "type": "refactor", "section": "Code Refactoring", "hidden": true },
{ "type": "test", "section": "Tests", "hidden": true },
{ "type": "build", "section": "Build System", "hidden": true },
{ "type": "ci", "section": "Continuous Integration", "hidden": true }
]
}
}
🔧 Installation
There's no need to install should-release-it, you can use it with npx.
📖 Usage
npx should-release-it <options>
$ npx should-release-it && npm run release-it
Output with no meaningful commits
$ npx should-release-it
» [6:08:53 PM] [should-release-it] › ℹ Should NOT trigger a release: ci: update workflow
» [6:08:53 PM] [should-release-it] › ℹ No meaningful commits found, we should not release
Output that should trigger release
$ npx should-release-it
» [11:27:49 PM] [should-release-it] › ℹ Should NOT trigger a release: ci: clean up workflow
» [11:27:49 PM] [should-release-it] › ℹ Should trigger a release: feat: update dashboard
» [11:27:49 PM] [should-release-it] › ℹ Found at least one commit that require a release, we should release
Use on CI:
- name: Check if should release
run: |
npx should-release-it || exit 0
npm run release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check if should release
id: should-release
run: |
if npx should-release-it; then
echo "value=true" >> $GITHUB_OUTPUT
else
echo "value=false" >> $GITHUB_OUTPUT
fi
Options
Argument | Description | Type |
---|
--current-version | Version to use when getting git log , if not provided will use the one on package.json . | [string] |
--release-it-dir | Directory to search for the release-it config file, defaults to the current working directory. | [string] |
--silent | Mute logs. | |
💬 Contributing
Would like to help make this package better? Please take a look at the contributing guidelines for a detailed explanation on how you can contribute.
❤️ Acknowledgments
I'd like thank my daily coffee!