🌚
GitHub Actionsでgo mod tidyを実行しPRを作成する
本題
go mod tidy
を実行して、差分があればPRを出すようなGitHub Actionsを実装しようして雑に検索したのですがピンポイントな記事が見つからなかったのでここに記しておきます。
name: Go mod tidy
# cron, pull_request などお好みで
on: push
jobs:
sync-dependencies:
name: Run go mod tidy
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.16.0
- name: Run go mod tidy
run: go mod tidy
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
commit-message: "fix: run go mod tidy"
branch: go-mod-tidy
delete-branch: true
title: "Update go.mod"
PRを作成するのに peter-evans/create-pull-requestを使用しました。オプションなどはこちらを参考にしてください。
余談
依存モジュールの更新を察知してPRを出してくれるRenovateやDependabotでもgo mod tidy
を実行してくれます。
Renovate
postUpdateOptions
でgomodTidy
をenableにすることでgo mod tidy
を実行してくれるのですが、go.sumが期待通りにならなかったりするらしいので注意が必要です。気になった方はissueを探してみてください。
Dependabot
以前はモジュールのアップデート時にgo mod tidy
を実行してくれなかったそうなのですが、今は実行してくれるみたいです。
.github/dependabot.yml
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
Discussion