GitHub ActionsとHugoを使用して静的サイト生成を行う場合、peaceiris/actions-hugo
を使用するか、自分で適当にHugoをインストールするかのいずれかが一般的だと思います。このブログでは、セットアップ当初はpeaceiris/actions-hugoを使っていたのですが、最近debパッケージを自分でインストールする方式に切り替えました。
gohugoio/hugoのreleases
から直接debパッケージを持ってきているので、peaceiris/actions-hugoとは違いlatest
指定をする事ができず、Hugoの更新を手動で行う必要があり、ちょっと面倒だな〜と感じていました(しかもHugoは結構開発が活発で、更新もはやいんですよね)。
仕事のリポジトリでは最近renovateがどんどん導入されているので、これを機にrenovateを導入することにしました。
HugoのバージョンはGitHub ActionsのWorkflowファイル内にenvで指定されていて 、もちろん標準状態のrenovateはこれを検知・更新してくれません。これに対応するには、regexManagers を使用します。
regexManagersは正規表現でバージョン番号を引っかけて更新してくれるmanager
で、fileMatch
とmatchStrings
という二つの正規表現を書くことで使う事ができます。
fileMatch
はその名の通り、どのファイルを監視するかを指定する正規表現で、今回はGitHub Actionsの設定ファイルを監視して欲しいので、デフォルトのgithub-actions
managerが監視する正規表現をそのままコピーしてきて使用しました。
|
|
matchStrings
はバージョンを引っかけるための正規表現で、datasource
、depName
、currentValue
の三つの値をキャプチャするか、datasourceTemplate
、depNameTemplate
、currentValueTemplate
で値を指定する必要があります。datasource
(datasourceTemplate
)とdepName
(depNameTemplate
)はバージョンを比較するためのデータソースと依存の名称で、今回はGitHub上にあるgohugoio/hugoリポジトリのリリースと比較をしたいため、datasourceTemplate
にgithub-releases
を、depNameTemplate
にgohugoio/hugo
を指定しました。currentValue
(currentValueTemplate
)は現在のバージョン番号を表す値で、これはGitHub Actionsの設定ファイルに書かれている値なので、matchStrings
で引っかけてキャプチャします。
|
|
設定ファイル全体としては次の様になります:
|
|
これで無事renovateがHugoのバージョンをチェックしてくれる 様になりました。めでたしめでたし。