GitHub Actionsのruby/setup-ruby
やactions/setup-node
などで使う言語のバージョン指定をRenovateで随時更新できるようにする
自分はRuby, Nodeを使うことが多いので掲題の2つしか試していないが他の言語の~~envでもRenovateが対応していれば流用可能
node-versionなどのenv系のバージョン更新
Renovateはデフォルトで(特別な設定を必要とせず).ruby-version
の値や.node-version
などのファイルを見つけて、更新がある場合はPRを作成してくれる
Automated Dependency Updates for Ruby Version - Renovate Docs
Automated Dependency Updates for Nodenv - Renovate Docs | Renovate Docs
GitHub Actionsでのsetup-nodeなどのバージョン指定
掲題の話だが、できないなーと思ってたけどちょっと工夫すれば実現できる
Renovate doesn't update NodeJS version used by GitHub actions · Issue #7716 · renovatebot/renovate
上記issueに答えが載っていて
- Renovateでは
.ruby-version
,.node-verison
などのバージョンをデフォルトでウォッチ対象にできる - GitHub Actionsの設定内でこの
.ruby-version
,.node-verison
の内容を読み込んでsetup-ruby
,setup-node
のアクションに引数として渡す
そうすることで、実質Actionsの設定ファイル上の言語のバージョンの自動アップデートが実現できる
- 設定例
jobs: job1: runs-on: ubuntu-latest name: search tweet steps: - uses: actions/checkout@v3 - name: Read Ruby version from .ruby-version run: echo "ruby_version=$(cat .ruby-version)" >> $GITHUB_OUTPUT id: ruby-version - uses: ruby/setup-ruby@v1.106.0 with: ruby-version: ${{ steps.ruby-version.outputs.ruby_version }}
コードのcheckout後に$GITHUB_OUTPUT
へ現在の.ruby-version
の値を出力しRubyのバージョンを後続のステップで参照できるようにする
setup-ruby
で使用するRubyのバージョンを指定
という流れになる
おわり
設定ファイルにバージョンベタ書きだとファイルが増えるほど更新が面倒なのでこういう方法で一括管理できるのは楽で良いですね