Should Semantic Release
Checks whether a semantic release should be run for a commit.
Usage
This CLI script determines whether a semantic release should occur for a package based on Git history.
Specifically, it returns truthy only if a commit whose type isn't chore
or docs
has come since the most recent release commit.
if npx should-semantic-release ; then npx release-it ; fi
This can be useful, for example, to prevent a release-it
release:
{
"hooks": {
"before:bump": "if ! npx should-semantic-release ; then exit 1 ; fi"
}
}
should-semantic-release
accepts the following CLI flag:
-v
/--verbose
(default: false
): Whether to log debug information to the console
$ npx should-semantic-release
Checking up to 123 commits for release readiness...
Checking commit: chore: an example chore (#101)
Found type chore.
Checking commit: chore: another example chore (#100)
Found type chore.
Checking commit: chore: release v1.27.31
This is a release commit. Returning false.
Node API
Alternately, you can call this import asynchronous shouldSemanticRelease
function into Node scripts:
import { shouldSemanticRelease } from "should-semantic-release";
if (await shouldSemanticRelease()) {
console.log("Let's release! 🚀");
}
shouldSemanticRelease
accepts an optional options object with the following parameter:
await shouldSemanticRelease({ verbose: true });
Development
See .github/CONTRIBUTING.md
.
Thanks! 💖
Contributors
💙 This package is based on @JoshuaKGoldberg's template-typescript-node-package.