2023年7月2日 • ☕️ 2 min read
English

typescript-actionの課題

Github Actionを作る時、オフィシャルtypescript-actionを使うのが一般的です。たしかに使いやすいですが、いくつメンテナンスするための課題があります。

  1. ライブラリを最新の状態に保つ仕組みが入っていない
  2. チェンジログを自動で生成する仕組みが入っていない
  3. バージョンを自動で上げる仕組みが入っていない、またリリースする度に、majorバージョンのタグをつき直す必要がある

以上の課題を解決するために、typescript-actionの強化版advanced-typescript-actionテンプレートを作りました。

advanced-typescript-actionの特徴

  1. jestの代わりにVitestを使う jestより断然早い。@swc/jestよりも早い
  2. ライブラリを最新の状態に保つために、renovateを使う
  3. チェンジログの自動生成、バージョン管理するために、changesetsを使う renovateのPRに自動的にchangesetsが追加される changesetsのPRがマージされたら、自動的にタグをつける。majorバージョンのタグも自動的につけ直す

修正PRの例

今バージョンv1.0.2のGithub Actionを例に、修正PRの流れを説明します。

  1. patch修正してPRを出す
  2. changesetsをPRに追加する(ローカルでpnpm changesetにて追加するか、PRの中のchangeset botのコメントのリンクをクリックして追加する、どちらでもOK)
  3. 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の流れを説明します。

  1. 設定した時間帯でrenovateがPRを出す
  2. PRに自動的にpatch修正のchangesetsが追加される
  3. テストが通ったら、PRが自動マージされる

そして、修正PRの例と同じように、自動的にGithub Actionのバージョンはv1.0.3にアップされ、タグv1.0.3が追加されます。v1のタグもv1.0.2のコミットからv1.0.3のコミットに変更されます。

テストを充実すれば、ライブラリのバージョンアップが完全に自動化できるでしょう。

完了

お役に立てれば幸いです。

https://github.com/thundermiracle/advanced-typescript-action


関連投稿

特定なbranchがマージされた時にGitHub Actionを実行する

2023年6月9日

ThunderMiracle

Blog part of ThunderMiracle.com