blog.anqou.net
rss
author
tags

Dependabot で Nix Flake の更新を行う

Nix Flake は定期的に nix flake update を打つことで nixpkgs などの依存する inputs を最新に保つことができます。 GitHub でコードを管理している場合 Dependabot でこれを行いたくなりますが、これまで Dependabot は Nix Flake をサポートしていませんでした。そのため自前で nix flake update を打つための workflow を用意して実行するというのが定番[1]でした。

そんな中 Dependabot が Nix Flake の更新を公式にサポートしたことが 4 月 7 日にアナウンスされました。これを使うと自前で workflow を用意しなくても更新を行うことができます。ということで Waq のレポジトリで試してみました。

まず以下のような YAML ファイルを .github/dependabot.yml として保存します。

version: 2
updates:
  - package-ecosystem: nix
    directory: / # flake.nix があるディレクトリを指定する。
    schedule:
      interval: daily # 一日一回動作させる。

すると flake.nix が依存している inputs(参考)が更新されると、それに追従するための PR が各 input ごとに作成されます:

dependabot.ymlgroups の設定をしておくと、複数の inputs の更新を一つの PR にまとめることもできます。例えば以下のように設定すると全ての inputs の更新が一つの PR にまとまります(参考)。

version: 2
updates:
  - package-ecosystem: nix
    directory: /
    schedule:
      interval: daily
    # 以下を追加
    groups:
      dependencies:
        patterns:
          - "*"

注釈

  1. 本当に定番かどうかは知りません(は?)がちょくちょく見かける気がします。