Slide 1

Slide 1 text

© DeNA Co., Ltd. 1 Renovate ではじめる 運用レスなライブラリ更新 幸田優哉 IT 本部品質管理部 SWET 第二グループ 株式会社ディー・エヌ・エー

Slide 2

Slide 2 text

© DeNA Co., Ltd. 2 Yuya Koda 約1年前に DeNA の SWET (SoftWare Engineer in Test) チームに Join しました。 お仕事は全社向けに提供している GitHub Actions self-hosted runner をいい感じにすることです。 最近のマイブームは立ち飲み屋さん巡り DeNA IT 本部品質管理部 SWET 第二グループ ponkio_o © DeNA Co., Ltd. 自己紹介 koday.me

Slide 3

Slide 3 text

© DeNA Co., Ltd. 3 Renovate とは

Slide 4

Slide 4 text

© DeNA Co., Ltd. 4 ● 各種ライブラリやツールのバージョンのアップデートを自動で行ってくれるやつ ○ 公式ドキュメントの Bot comparsion で Dependabot との比較がある ● Dependabot と比較してかなり細かくカスタマイズすることができる ○ 対応しているサービスもかなり多く、Custom Manager (旧: Regex Manager) を 使うと正規表現などを用いて任意のファイルを対応させることもできる 1 Renovate とは

Slide 5

Slide 5 text

© DeNA Co., Ltd. 5 運用負荷を下げるために

Slide 6

Slide 6 text

© DeNA Co., Ltd. 6 automerge と renovate-approve-bot

Slide 7

Slide 7 text

© DeNA Co., Ltd. 7 automerge の徹底活用 ● 様々なルールに応じて PR の作成だけでなく、マージまで行ってくれる設定 ○ 特定のパッケージのみ、patch バージョンの更新のみなど個別に指定可能 ● GitHub の Branch Protection が設定されている場合にはそのステータスも考慮される 1

Slide 8

Slide 8 text

© DeNA Co., Ltd. 8 renovate-approve-bot ● automerge の設定が有効な PR に対して Approve を付けてくれる GitHub Apps ○ Branch Protection で Require approvals が設定されている場合に便利 ● 使い方は GitHub Apps をインストールするだけで OK ○ Self-hosted Renovate の場合には renovatebot/renovate-approve-bot を適当な 場所で動かすだけで導入できる (中身はシンプルな Webhook Server) 2 renovate-approve による Approve

Slide 9

Slide 9 text

© DeNA Co., Ltd. 9 automerge 利用時のポイント 「デフォルトブランチに自動でマージされるのはちょっと怖い…」という人に向けて ● まずは直接サービスに影響しないものから始めるのがオススメ ○ 例えば CI で利用しているツールや、テストで利用しているモックライブラリなど ● PR で実行されるテストや Lint を充実させる ○ CI のステータスはちゃんと見てくれるので、これらが充実していると安心感がある ● 進んできたら徐々に範囲を拡大していく ○ 対象パッケージ、対象バージョンを広げていく ■ 無理に全部をやる必要はないのでバランス大事 3

Slide 10

Slide 10 text

© DeNA Co., Ltd. 10 Shareable Config

Slide 11

Slide 11 text

© DeNA Co., Ltd. 11 Shareable Config Presets ● Renovate の Config を複数のリポジトリで共有するための機能 ● どのリポジトリでも入れるような設定をここに書いておくと便利 ○ 個別に適用したい設定がある場合にはリポジトリごとに配置する設定ファイルで 上書きすることができる ● この Config のバージョニングも可能 (Renovate でアップデートもできる) 1 owner-name/renovate-config のバージョン 0.1.0 を読み込んでいる様子

Slide 12

Slide 12 text

© DeNA Co., Ltd. 12 Built-in presets ● デフォルトで様々な便利プリセットが存在するので利用すると記述を減らせる ○ とりあえず入れておくといい: config:recommended ○ 営業時間外にアップデートしてくれる: schedule:nonOfficeHours ● もちろん独自の設定とも併用可能 2 Built-in presets と独自の設定の併用例

Slide 13

Slide 13 text

© DeNA Co., Ltd. 13