semantic-release-fail-on-major-bump-env
v1.1.1
Published
Semantic release plugin that prevents publishing major version bumps
Downloads
17
Readme
Semantic Release Fail on Major Bump
Semantic release plugin that prevents publishing major version bumps
Description
If you need your pipelines to fail if a major or breaking change release will be created with semantic-release, drop this plugin into your config.
Installation
npm install --save-dev semantic-release-fail-on-major-bumpUsage
In your semantic-release configuration file, add semantic-release-fail-on-major-bump.
release.config.mjs
export default {
plugins: [
// Add this line
"semantic-release-fail-on-major-bump",
// Example semantic-release commit-analyzer config below...
[
"@semantic-release/commit-analyzer",
{
"preset": "angular",
"releaseRules": [
{"type": "docs", "scope": "README", "release": "patch"},
{"type": "refactor", "release": "patch"},
{"type": "style", "release": "patch"},
],
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"],
},
},
],
],
};Development
Testing
Make a either a Breaking: or non-breaking typed commit and then see if the error was thrown if expected while running
a dummy dry-run release.
npm link
npm link semantic-release-fail-on-major-bump
npm run test-releaseCI override via environment variable
If you need to temporarily allow a major release (for example from GitHub Actions), set the following environment variable to a truthy value to disable this plugin's check for that run. Per semantic-release’s plugin guide, environment variables are read from the context.env object that semantic-release provides to plugins (this is automatically populated from the process environment in CI):
- FAIL_ON_MAJOR_BUMP_DISABLE (default)
- Accepted truthy values:
1,true,yes,on(case-insensitive)
- Accepted truthy values:
You can also customize the env var name via plugin options (see below).
Examples:
Unix shells:
export FAIL_ON_MAJOR_BUMP_DISABLE=true npx semantic-releaseGitHub Actions:
jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm ci - name: Release env: FAIL_ON_MAJOR_BUMP_DISABLE: true run: npx semantic-release
Optional plugin configuration
You can override the env var name via plugin options in your semantic-release config:
export default {
plugins: [
[
'semantic-release-fail-on-major-bump',
{
// If set, the plugin will read this env var from context.env
disableEnvVar: 'ALLOW_MAJOR_RELEASE'
}
]
]
};License
Copyright Evelyn Hathaway, MIT License
