Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abelflopes/semantic-release-config-conventional
A shareable semantic-release config to publish npm packages with GitHub using conventional commits standard.
https://github.com/abelflopes/semantic-release-config-conventional
automated-change changelog changelog-generator ci ci-cd deployment github github-pages npm registry release release-automation release-notes version version-control versioning
Last synced: about 1 month ago
JSON representation
A shareable semantic-release config to publish npm packages with GitHub using conventional commits standard.
- Host: GitHub
- URL: https://github.com/abelflopes/semantic-release-config-conventional
- Owner: abelflopes
- Created: 2023-09-28T09:07:05.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-28T12:28:43.000Z (about 1 year ago)
- Last Synced: 2024-10-08T09:55:17.442Z (3 months ago)
- Topics: automated-change, changelog, changelog-generator, ci, ci-cd, deployment, github, github-pages, npm, registry, release, release-automation, release-notes, version, version-control, versioning
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/semantic-release-config-conventional
- Size: 305 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Semantic Release Conventional
[**semantic-release**](https://github.com/semantic-release/semantic-release) shareable config to publish npm packages with [GitHub](https://github.com) using [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) standard.
## Features
- Allow running dry run (release predict) on any branch
- Commits are analyzed with conventional commits parser, configuration extended so that `refactor` & `style` types increase patch version
- Release notes are generated and written to che changelog covering all the common commit types relevant to the consumer
- Automatically generated changelog
- Publishes to a npm package registry
- Creates a Github release
- Pushes `package.json` and `CHANGELOG.md` file to git## Installation
You can install this config via npm or yarn:
```bash
npm install semantic-release-config-conventional --save-dev
# or
yarn add semantic-release-config-conventional --dev
```## Usage
The shareable config can be configured in the [**semantic-release** configuration file](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration):
To use this configuration in your project, create a Prettier configuration file
(e.g., .prettierrc.js) and extend `semantic-release-config-conventional`:```js
// .releaserc.jsmodule.exports = {
extends: "semantic-release-config-conventional"
};
```### Configuration
This config can be provided with some options through environment variables
```js
// .releaserc.jsprocess.env.SR_CONFIG_NPM_PUBLISH = "false"; // if set to false will not attempt to publish a package to the registry
process.env.SR_CONFIG_NPM_PUSH = "true"; // if set to false will disable pushing of the package.json and changelog files after releasing
process.env.SR_CONFIG_CHANGELOG_FILE = "CHANGELOG.md"; // defines the path for the changelog filemodule.exports = {
extends: "semantic-release-config-conventional"
};
```See each [plugin](#plugins) documentation for required installation and configuration steps.
## Plugins
This shareable configuration uses the following plugins (with [internal configurations](https://github.com/abelflopes/semantic-release-config-conventional/blob/master/src/index.ts) applied):
- [`@semantic-release/commit-analyzer`](https://github.com/semantic-release/commit-analyzer)
- [`@semantic-release/release-notes-generator`](https://github.com/semantic-release/release-notes-generator)
- [`@semantic-release/changelog`](https://github.com/semantic-release/changelog)
- [`@semantic-release/npm`](https://github.com/semantic-release/npm)
- [`@semantic-release/github`](https://github.com/semantic-release/github)
- [`@semantic-release/git`](https://github.com/semantic-release/git)## Additional Recommended Setup
For optimal experience and consistency with sematic release, it is suggested to add commit validation matching the standard applied to semantic-release, in this case `conventional-commits`.
Ideally the releases should be performed through CI/CD workflows, reducing the possibility of human error. The commit validation should also run on the CI/CD workflows.
Check the [example/recipe](https://github.com/abelflopes/semantic-release-config-conventional/tree/master/docs/example).
## Contributing
If you encounter any issues with this ESLint configuration or have suggestions for improvements,
please visit the GitHub repository and open an issue or pull request.
Check also the [development](./docs/DEVELOPMENT.md) docs.