diff --git a/.github/workflows/dependabot-tidy.yml b/.github/workflows/dependabot-tidy.yml new file mode 100644 index 00000000000..e13390fa831 --- /dev/null +++ b/.github/workflows/dependabot-tidy.yml @@ -0,0 +1,41 @@ +name: Dependabot Tidy Go Mods + +on: + pull_request: + paths: + - '.github/workflows/**' + - '**/go.mod' + - '**/go.sum' + +jobs: + tidy_go_mods: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Go + uses: actions/setup-go@v4 + with: + go-version: 1.21.x + + - name: Tidy all Go mods + run: | + set -e + # Find all go.mod files + gomods=$(find . -type f -name go.mod) + + # Tidy each go.mod file + for modfile in $gomods; do + dir=$(dirname "$modfile") + + # Run go mod tidy in the directory + (cd "$dir" && go mod tidy -v) || exit 1 + done + + - name: Commit changes, if any + uses: stefanzweifel/git-auto-commit-action@v5 + with: + skip_dirty_check: false # Enable dirty check, and skip unnecessary committing + commit_message: "Run 'go mod tidy' via GitHub Actions" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a4c5b6dc85e..b874159473e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -58,8 +58,9 @@ jobs: else echo 'Succeeded.' fi - modtidy: + mod_tidy_check: runs-on: ubuntu-latest + if: ${{ github.actor != 'dependabot[bot]' }} steps: - name: Checkout code uses: actions/checkout@v4