はじめに
最近、GitHub Actionsを勉強し始めたのでCI/CDの自動化以外にもどんなことに利用できるのか知りたくてまとめました。
今後も、なにか見つければ載せていこうと思います。
主に記事として紹介されているものを中心にmarketplaceにあるなかで利用できそうなものについても探してみました。
利用例
リリース作業の効率化(リリースノートとかリリースのSourceとかを自動作成)
ありきたりな話ですが、リリースノートの作成といったリリース作業の自動化は価値あるかも。
csprojといったプロジェクトファイル上にちゃんと情報を記載しておけば、その内容を元に自動でリリースノートが作成するのはそう難しくもないはず。
Pull RequestやIssueのコメントからGitHub Actionsを実行する
GitHubのIssueで行なうコメントにはイベントがあり、Pull Requestについても同様のイベントが取れるらしいです。
私のチームでは毎日、定期報告としてIssueの進捗状況をコメントするようにしています。
特定のコメントを入力するとその日のコミット一覧を羅列したテンプレートコメントみたいなものが出せたりすると面白そうです。
トリガのタイミングを時刻にもできるはずなので、毎日決まったタイミングでその日のコミットした一覧とともに報告とか自動化できるとはかどりそうですね。
一定期間放置されたIssueをCloseする
やりっぱなしにならないように仕組みとしてこういうの導入してあっても面白そうですね。
GitHub Projectsのカラム移動でラベルを付与・削除する
(Projectsはカンバンみたいなやつです)
手動で移動させてラベルとかを適宜変えてというのは意外と大変なのでProjectsをよく利用するのであれば、便利そうですし、他にも応用が効きそうな手法ですね。
上記のようなタスク管理にGitHub Actionsを利用したいという場合には公式が参考事例を提示してくれているので参考になるかもしれません。
Slackなどに通知する
プルリクエストしたことを確認者にすぐに知らせるために「プルリク作成しました」といつもSlackで一報していたのですが、このあたりも自動化できると楽になりそうです。
また、テストやSonarCloudが失敗していればすぐにSlackで教えてくれると対応もしやすいかもしれません。
marketplaceにも似たようなのはいろいろありました。
今日の主題と違うけど、ためになったのでメモ
このアクションにより、依存関係をキャッシュし、出力をビルドして、ワークフローの実行時間を改善できます。
GitHub Actionsの活用というよりは、GitHub Actionsそのものの改善ですが、ワークフローの実行時間は利用制限などもあるので少しでも短くする工夫は大事ですよね。
また、以下のような知見も知っておくとどこかで役に立ちそうです。
また、Dockerタイプのものはワークフロー実行の最初にまずイメージをビルドする必要があるため実行時間が結構伸びます。ですので同じ機能のActionが複数ある場合可能ならJavaScriptタイプを選ぶほうが良いです。