typescript-actionの課題
Github Actionを作る時、オフィシャルtypescript-actionを使うのが一般的です。たしかに使いやすいですが、いくつメンテナンスするための課題があります。
- ライブラリを最新の状態に保つ仕組みが入っていない
- チェンジログを自動で生成する仕組みが入っていない
- バージョンを自動で上げる仕組みが入っていない、またリリースする度に、majorバージョンのタグをつき直す必要がある
以上の課題を解決するために、typescript-actionの強化版advanced-typescript-actionテンプレートを作りました。
advanced-typescript-actionの特徴
- jestの代わりにVitestを使う jestより断然早い。@swc/jestよりも早い
- ライブラリを最新の状態に保つために、renovateを使う
- チェンジログの自動生成、バージョン管理するために、changesetsを使う renovateのPRに自動的にchangesetsが追加される changesetsのPRがマージされたら、自動的にタグをつける。majorバージョンのタグも自動的につけ直す
修正PRの例
今バージョンv1.0.2
のGithub Actionを例に、修正PRの流れを説明します。
- patch修正してPRを出す
- changesetsをPRに追加する(ローカルで
pnpm changeset
にて追加するか、PRの中のchangeset botのコメントのリンクをクリックして追加する、どちらでもOK) - PRをマージする
そして、自動的にGithub Actionのバージョンはv1.0.3
にアップされ、タグv1.0.3が追加されます。v1
のタグもv1.0.2
のコミットからv1.0.3
のコミットに変更されます。
renovateのPRの例
今バージョンv1.0.2
のGithub Actionを例に、renovateのPRの流れを説明します。
- 設定した時間帯でrenovateがPRを出す
- PRに自動的にpatch修正のchangesetsが追加される
- テストが通ったら、PRが自動マージされる
そして、修正PRの例
と同じように、自動的にGithub Actionのバージョンはv1.0.3
にアップされ、タグv1.0.3が追加されます。v1
のタグもv1.0.2
のコミットからv1.0.3
のコミットに変更されます。
テストを充実すれば、ライブラリのバージョンアップが完全に自動化できるでしょう。
完了
お役に立てれば幸いです。
https://github.com/thundermiracle/advanced-typescript-action