kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Dependabot の groups を使って環境別の Terraform AWS Provider のアップデートを1つのプルリクエストにまとめる

Terraform プロジェクトで environments ディレクトリを使って環境別のリソースを管理しているときに(Terraform on Google Cloud に載っている構成)Dependabot で Terraform AWS Provider のアップデートを「1つのプルリクエストにまとめたい」という場面があった📝

environments
├── dev
├── prd
└── stg

結論から言うと Dependabot の groups を使えば OK👌Apply-Before-Merge 戦略を採用しているときに便利な設定だったりする.ちなみに groups を使わない場合はディレクトリ別にプルリクエストができてしまう.

docs.github.com

👾 dependabot.yml

以下のように dependabot.yml を実装する.ポイントは directories で複数ディレクトリを対象にして,groups で1つのプルリクエストにまとめているところ.

version: 2

updates:
  - package-ecosystem: terraform
    directories:
      - /environments/prd
      - /environments/stg
      - /environments/dev
    schedule:
      interval: daily
    open-pull-requests-limit: 1
    target-branch: main
    groups:
      terraform-dependencies:
        patterns:
          - "*"
    ignore:
      - dependency-name: "*"
        update-types: ["version-update:semver-major"]

その他は前にまとめた設定と基本的に同じ😀

kakakakakku.hatenablog.com

動作確認

すると Bump the terraform-dependencies group across 3 directories with 1 update というプルリクエストができる❗️