Open4

semantic-releaseを使って簡単にバージョン番号管理とリリースノート発行をするための勉強メモ

Kumamoto-HamachiKumamoto-Hamachi

semantic-release

https://semantic-release.gitbook.io/semantic-release/usage/getting-started

これはなに?

semantic-release automates the whole package release workflow including: determining the next version number, generating the release notes, and publishing the package.

バージョニング、リリースノート作成、パッケージの発行といったパッケージのリリースに関わるワークフロー全体の自動化のためのツールsemantic-releaseについてメモしたもの。

ただしこのスクラップではnpmパッケージの発行についてはほぼ触れずにいくつもり。
また適宜CIツールとしてGiHub Actionsを使う。
GitHub Actionsで遊ぶで簡単な使い方メモを書き進めている

CI上での作業

$ npx semantic-release

注意

semantic-relaseの処理はテスト等全て終わった後でやる必要がある。

Kumamoto-HamachiKumamoto-Hamachi

CHANGELOG

release-notes-generatorでCHANGELOGの中身を作り、@semantic-release/changelogで実際のファイル作成・更新を行うというプラグインの役割分担をさせている。(ややこしいなぁ!!(#^ω^))

release-notes-generatorの設定

下記でrelease-notes-generatorの設定のやり方が記載。

https://github.com/conventional-changelog/conventional-changelog-config-spec/blob/master/versions/2.0.0/README.md

name type required default description
type string ✔️ N/A A string used to match <type>s used in the Conventional Commits convention.
section string ✖️ N/A The section where the matched commit type will display in the CHANGELOG.
hidden boolean ✖️ N/A Set to true to hide matched commit types in the CHANGELOG.

例えばfeatというprefixがついているコミットをCHAGELOGのFeaturesに載せたいなら

{"type": "feat", "section": "Features", "hidden": false},

@semantic-release/changelogの設定

TODO