以下の内容はhttps://sue445.hatenablog.com/entry/2026/01/04/005312より取得しました。


terraform-plan-changes-countを作った

terraform-plan-changes-countについて

github.com

Terraformのplanに含まれるchangesの件数を取得するためのGitHub ActionsのActionです

下記の例が全て

steps:
  - uses: hashicorp/setup-terraform@v3

  - run: terraform plan -out=tfplan

  - name: Run terraform-plan-changes-count
    id: plan-changes
    uses: sue445/terraform-plan-changes-count@v0
    with:
      plan-path: tfplan

  - name: Print outputs
    run: |
      echo "CREATE_COUNT=${CREATE_COUNT}"
      echo "UPDATE_COUNT=${UPDATE_COUNT}"
      echo "DELETE_COUNT=${DELETE_COUNT}"
      echo "TOTAL_COUNT=${TOTAL_COUNT}"
    env:
      CREATE_COUNT: ${{ steps.plan-changes.outputs.create }}
      UPDATE_COUNT: ${{ steps.plan-changes.outputs.update }}
      DELETE_COUNT: ${{ steps.plan-changes.outputs.delete }}
      TOTAL_COUNT:  ${{ steps.plan-changes.outputs.total }}

モチベーション

僕は個人でTerraformのリポジトリを10個以上メンテしています。

Terraformの本体やProviderをバージョンアップするPRは毎月自動で作られるのですが、planの結果を見て1つずつマージしていくのも大変です。

これらのPRの場合基本的にplanのchanges(create, update, delete)の件数が0件なことがほとんどなので、ほとんどのケースで自動マージできます。

そのためGitHub Actions上でplanのchangesの件数を取得しやすくするために作りました。

例:dependabotが作ったPRでplanのchangesの件数が0件だった場合に自動マージする例

jobs:
  terraform:
    permissions:
      contents: write
      pull-requests: write

    steps:
      - name: Run terraform-plan-changes-count
        id: plan-changes
        uses: sue445/terraform-plan-changes-count@v0
        with:
          plan-path: tfplan

      - name: Auto-merge Dependabot PR when there are no plan changes
        run: |
          gh pr review --approve "$PR_URL"
          gh pr merge --auto --merge "$PR_URL"
        if: github.event_name == 'pull_request' && steps.plan-changes.outputs.total == '0' && github.actor == 'dependabot[bot]'
        env:
          PR_URL: ${{ github.event.pull_request.html_url }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

元ネタ

GitLabだと下記のような方法でplanのchangesの件数を取得してMergeRequest上で表示することができます。

docs.gitlab.com

ここに書かれてるスクリプトGitHub Actionsでいい感じに使いたくて作りました。




以上の内容はhttps://sue445.hatenablog.com/entry/2026/01/04/005312より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14