Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/suin/semantic-release-yarn
semantic-release plugin to publish a npm package with yarn@berry
https://github.com/suin/semantic-release-yarn
publish semantic-release version yarn yarn-berry yarn2 yarn3
Last synced: 11 days ago
JSON representation
semantic-release plugin to publish a npm package with yarn@berry
- Host: GitHub
- URL: https://github.com/suin/semantic-release-yarn
- Owner: suin
- Created: 2022-02-09T18:38:27.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-14T06:38:44.000Z (almost 3 years ago)
- Last Synced: 2024-10-10T20:40:54.286Z (about 1 month ago)
- Topics: publish, semantic-release, version, yarn, yarn-berry, yarn2, yarn3
- Language: TypeScript
- Homepage:
- Size: 1.26 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# @suin/semantic-release-yarn
[**semantic-release**](https://github.com/semantic-release/semantic-release) plugin to publish a [npm](https://www.npmjs.com) package using yarn@berry.
| Step | Description |
| ------------------ | ---------------------------------------------------------------------------------------------------------- |
| `verifyConditions` | Verify the presence of the `NPM_TOKEN` environment variable and verify the authentication method is valid. |
| `prepare` | Update the `package.json` version and [create](https://yarnpkg.com/cli/pack) the npm package tarball. |
| `publish` | [Publish the npm package](https://yarnpkg.com/cli/npm/publish) to the registry. |## Install
```bash
$ yarn add @suin/semantic-release-yarn -D
```## Usage
The plugin can be configured in the [**semantic-release** configuration file](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration):
```json
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@suin/semantic-release-yarn"
]
}
```## Configuration
### Npm registry authentication
The npm authentication configuration is **required** and can be set via [environment variables](#environment-variables).
The [token](https://docs.npmjs.com/getting-started/working_with_tokens) is supported.
**Notes**:
- Only the `auth-only` [level of npm two-factor authentication](https://docs.npmjs.com/getting-started/using-two-factor-authentication#levels-of-authentication) is supported, **semantic-release** will not work with the default `auth-and-writes` level.
### Environment variables
| Variable | Description |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `NPM_TOKEN` | Npm token created via [npm token create](https://docs.npmjs.com/getting-started/working_with_tokens#how-to-create-new-tokens) |### Options
[See `PluginConfig` type declaration](https://github.com/suin/semantic-release-yarn/blob/main/pluginConfig.ts).
### Npm configuration
The plugin uses the [`yarn@berry` CLI](https://yarnpkg.com/cli) which will read the configuration from [`.yarnrc.yml`](https://yarnpkg.com/configuration/yarnrc).
**Notes**:
- The plugin currently only supports the NPM registry `https://registry.npmjs.org`.
- The plugin require yarn [version](https://github.com/yarnpkg/berry/blob/HEAD/packages/plugin-version/README.md) plugin. You don't have to install it manually, the plugin will install it for you.### Examples
The `npmPublish` and `tarballDir` option can be used to skip the publishing to the `npm` registry and instead, release the package tarball with another plugin. For example with the [@semantic-release/github](https://github.com/semantic-release/github) plugin:
```json
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@suin/semantic-release-yarn",
{
"npmPublish": false,
"tarballDir": "dist"
}
],
[
"@semantic-release/github",
{
"assets": "dist/*.tgz"
}
]
]
}
```