Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Renovate ではじめる運用レスなライブラリ更新 / 令和最新版 他人に自慢したいヤバいC...
Search
YuyaKoda
PRO
September 26, 2024
Technology
1
110
Renovate ではじめる運用レスなライブラリ更新 / 令和最新版 他人に自慢したいヤバいCI/CD LT会 @ yabaibuki.dev #2
https://livesense.connpass.com/event/328856/
YuyaKoda
PRO
September 26, 2024
Tweet
Share
More Decks by YuyaKoda
See All by YuyaKoda
Amazon ECS で作るスケーラブルなセルフホストランナー / GitHub Actions Meetup Tokyo #4
ponkio_o
PRO
2
620
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
41
15k
aqua で始める CI-Friendly なツール管理
ponkio_o
PRO
2
960
set-terraform-matrix という Actions を作った / set-terraform-matrix-actions
ponkio_o
PRO
0
450
NGINX Ingress Controller を活用した Retty のサービス開発とモニタリング / NGINX ユーザー会 2022 春
ponkio_o
PRO
0
160
Retty における Signal Sciences の導入事例 / Fastly Yamagoya 2021
ponkio_o
PRO
0
4k
Amazon EKS を活用した個人開発環境の整備と自動化への取り組み / CNDT2021
ponkio_o
PRO
0
480
Terraform における秘匿情報管理 / Credentials management in Terraform
ponkio_o
PRO
0
330
Other Decks in Technology
See All in Technology
オブザーバビリティの探求 〜性能劣化から始まった旅路〜
sansantech
PRO
3
380
XP matsuri 2024 - 銀河英雄伝説に学ぶ
kawaguti
PRO
3
390
クロージング / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
140
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' best friend? #tqrk15
expajp
3
450
k6を活用した再現性・拡張性の高い負荷試験基盤の構築
biwashi
9
2.5k
OPENLOGI Company Profile
hr01
0
53k
Wasmコンテナを動かしてみた
stanaka26
0
160
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
430
Sansanにおける全社横断データ分析基盤の挑戦と未来 / Challenges and Future of Cross-Organizational Data Analytics Platform at Sansan
sansan_randd
2
240
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
19
11k
20240927競プロとともにあるく_ソフトウェアテストの地図.pdf
prettyhappycatty
0
150
生成 AI による新しい UI/UX 〜サーバーレスで実現する Generative UI の世界〜 / generative ui with serverless
gawa
7
2.6k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
517
39k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.1k
Music & Morning Musume
bryan
46
6k
Building Adaptive Systems
keathley
36
2.1k
Designing with Data
zakiwarfel
98
5.1k
Infographics Made Easy
chrislema
239
18k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
166
48k
A Tale of Four Properties
chriscoyier
155
22k
Documentation Writing (for coders)
carmenintech
65
4.3k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
27
7.4k
Automating Front-end Workflow
addyosmani
1365
200k
Transcript
© DeNA Co., Ltd. 1 Renovate ではじめる 運用レスなライブラリ更新 幸田優哉 IT
本部品質管理部 SWET 第二グループ 株式会社ディー・エヌ・エー
© 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
© DeNA Co., Ltd. 3 Renovate とは
© DeNA Co., Ltd. 4 • 各種ライブラリやツールのバージョンのアップデートを自動で行ってくれるやつ ◦ 公式ドキュメントの Bot
comparsion で Dependabot との比較がある • Dependabot と比較してかなり細かくカスタマイズすることができる ◦ 対応しているサービスもかなり多く、Custom Manager (旧: Regex Manager) を 使うと正規表現などを用いて任意のファイルを対応させることもできる 1 Renovate とは
© DeNA Co., Ltd. 5 運用負荷を下げるために
© DeNA Co., Ltd. 6 automerge と renovate-approve-bot
© DeNA Co., Ltd. 7 automerge の徹底活用 • 様々なルールに応じて PR
の作成だけでなく、マージまで行ってくれる設定 ◦ 特定のパッケージのみ、patch バージョンの更新のみなど個別に指定可能 • GitHub の Branch Protection が設定されている場合にはそのステータスも考慮される 1
© 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
© DeNA Co., Ltd. 9 automerge 利用時のポイント 「デフォルトブランチに自動でマージされるのはちょっと怖い…」という人に向けて • まずは直接サービスに影響しないものから始めるのがオススメ
◦ 例えば CI で利用しているツールや、テストで利用しているモックライブラリなど • PR で実行されるテストや Lint を充実させる ◦ CI のステータスはちゃんと見てくれるので、これらが充実していると安心感がある • 進んできたら徐々に範囲を拡大していく ◦ 対象パッケージ、対象バージョンを広げていく ▪ 無理に全部をやる必要はないのでバランス大事 3
© DeNA Co., Ltd. 10 Shareable Config
© DeNA Co., Ltd. 11 Shareable Config Presets • Renovate
の Config を複数のリポジトリで共有するための機能 • どのリポジトリでも入れるような設定をここに書いておくと便利 ◦ 個別に適用したい設定がある場合にはリポジトリごとに配置する設定ファイルで 上書きすることができる • この Config のバージョニングも可能 (Renovate でアップデートもできる) 1 owner-name/renovate-config のバージョン 0.1.0 を読み込んでいる様子
© DeNA Co., Ltd. 12 Built-in presets • デフォルトで様々な便利プリセットが存在するので利用すると記述を減らせる ◦
とりあえず入れておくといい: config:recommended ◦ 営業時間外にアップデートしてくれる: schedule:nonOfficeHours • もちろん独自の設定とも併用可能 2 Built-in presets と独自の設定の併用例
© DeNA Co., Ltd. 13