DependabotでGitHub ActionsのActionを最新に保つ方法
前書き:絶滅へ向かうJenkinsオジサン
結論ですが、GitHub公式ドキュメント「Dependabot でアクションを最新に保つ」を読めば、GitHub ActionsのActionを最新に保つ方法が分かります。ちなみに私は、現職のテックリードから教えていただいて「なにこれ便利だ」と思った記憶があります。
(記事に関係のない導入の始まり)
最近、新卒の子が作ったPull RequestのApproveコメントにJenkinsマスコットキャラ(執事) LGTM画像を貼ったのですが、「知らなかった」と言われて世代を感じました。私が新卒の頃(2015年)は、まだJenkinsオジサン(現実世界でJenkinsの設定弄りを頑張っているオジサン)が生き残っていたのですが、最近は絶滅危惧種かもしれません。
2023年現在ではJenkinsの代替として、GitHub ActionsなどのCI/CD(継続的インテグレーション/継続的デリバリー)ツールを使う人たちが多数派だと思われます。
GitHub Actionsは、複数のActionを利用してワークフローを動作させています。Actionは定期的にアップデートされますが、古いActionを使用していてもワークフローが壊れないことが多いです。
そのため、Actionの新しいバージョンが提供されていることに気づかない時があります。私の経験上では、初めて確認するリポジトリにはそれなりの頻度(10〜20%程度の割合)で古いActionが含まれています。
Actionの更新チェックを忘れない便利な方法として、DependabotによるGithub Actionsの定期更新があります。本記事では、定期更新方法を説明しますが、記事冒頭の公式ドキュメントを読む方が正確です。
設定方法
.github/dependabot.yml
に以下の設定を追加すると、定期的にActionの更新を促すPRが作成されます。更新頻度(interval)は、daily(日)、weekly(週)、monthly(月)から選べます。
1 2 3 4 5 6 7 |
version: 2 updates: - package-ecosystem: "github-actions" directory: "/" schedule: # 毎週GitHub ActionsのAction更新をチェック interval: "weekly" |
以下が作成されたPRの例です。
最後に
短いですが、終わりです。
私はテックリードから本記事の内容を教えていただいたので、「当然(会社の)他の人も把握しているだろう」と考えていました。しかし、複数のリポジトリを覗いた時に「そこまで啓蒙されてないな?」と感じたので、記事を書いて広める形を取りました。
今まで真面目に考えてきませんでしたが、受託開発の文脈だと管理対象リポジトリ数に対してGitHub Actionsメンテナ不足しがちになる傾向があるのではないでしょうか。歴史を繰り返している感があるのですが、深刻なJenkinsオジサン不足ならぬGitHub Actionsオジサン不足が起きているのかな、と感じた次第です。
ロシア人と国際結婚した地方エンジニア。
小学〜大学院、就職の全てが新潟。
大学の専攻は福祉工学だったのに、エンジニアとして就職。新卒入社した会社ではOS開発や半導体露光装置ソフトを開発。現在はサーバーサイドエンジニアとして修行中。HR/HM(メタル)とロシア妻が好き。サイトに関するお問い合わせやTwitterフォローは、お気軽にどうぞ。