🙏
Rustプロジェクトのリリース作業をCIで自動化:Release-plzメモ [blessed.rsシリーズ22]
概要
こちらのリストにあるものを見て書いたメモになります。
今回はRelease-plzについてです。
Release-plzとは
RustプロジェクトのCIでリリース用のプルリクエストを自動作成してくれるツール
できること
- conventional commits に基づくバージョン更新
- git-cliff による変更履歴の更新。デフォルトでは keep a changelog フォーマットを使用
- cargo-semver-checks によるAPIの変更検出
- Cargoワークスペースに対応
- 設定なしで実行可能
- リリース前のカーゴアップデート(オプション)
- リリースされたパッケージごとに Git タグを作成
- cargoレジストリへのパッケージ公開
- GitHub/Giteaでのリリース
使い方
チュートリアルがわかりやすいため、以下を見るのがよい。
ローカルでの使用
詳細については以下を参照
ローカルでは以下でインストールできる
$ cargo install release-plz --locked
その他のインストール方法については以下
また、以下が実行できる
(それぞれの詳細は、チュートリアルを参照)
-
release-plz update
: 変更をコミットせずにローカルでプロジェクトを更新する -
release-plz release-pr
: GitHub Pull Request を作成 -
release-plz release
: パッケージの新バージョンを公開 -
release-plz init
: 現在の GitHub リポジトリ用に release-plz を初期化 -
release-plz set-version
: Cargo.tomlとchangelogでパッケージのバージョンを編集 -
release-plz generate-completions
: シェルのコマンド補完を生成 -
release-plz generate-schema
: release-plz 設定用の JSON Schema を生成
GitHub Actionsでの使用
詳細については以下を参照
デフォルトでは、コミットをメインブランチにマージするたびに、以下を実行する
-
release-plz release-pr
: リリース Pull Request を作成 -
release-plz release
: 未公開パッケージを公開
以下の Quickstart を参考に設定するのがよさそう。
(release-pr と release のどちらも行う例とそれぞれのみの例が載っている)
Googleのrelease-pleaseとのちがいについて
似たプロジェクトとしてGoogleのrelease-pleaseがあるが、そちらとは違う点が挙げられている。
(以下はRelease-plzの特徴)
- 設定ファイルが必要ない
- Gitタグがない場合、Cargo Registryを参照
- 専用のコミットメッセージを行う必要がない
- Rust言語のみのプロジェクトにしか対応していない
Discussion