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
220
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
Kubernetes だけじゃない!Amazon ECS で実現するクラウドネイティブな GitHub Actions セルフホストランナー / CNDW2024
ponkio_o
PRO
6
500
Amazon ECS で作るスケーラブルなセルフホストランナー / GitHub Actions Meetup Tokyo #4
ponkio_o
PRO
2
750
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
43
17k
aqua で始める CI-Friendly なツール管理
ponkio_o
PRO
2
1.1k
set-terraform-matrix という Actions を作った / set-terraform-matrix-actions
ponkio_o
PRO
0
500
NGINX Ingress Controller を活用した Retty のサービス開発とモニタリング / NGINX ユーザー会 2022 春
ponkio_o
PRO
0
180
Retty における Signal Sciences の導入事例 / Fastly Yamagoya 2021
ponkio_o
PRO
0
4.3k
Amazon EKS を活用した個人開発環境の整備と自動化への取り組み / CNDT2021
ponkio_o
PRO
0
510
Terraform における秘匿情報管理 / Credentials management in Terraform
ponkio_o
PRO
0
360
Other Decks in Technology
See All in Technology
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
150
2025年に挑戦したいこと
molmolken
0
150
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
Cloudflareで実現する AIエージェント ワークフロー基盤
kmd09
0
280
.NET 最新アップデート ~ AI とクラウド時代のアプリモダナイゼーション
chack411
0
190
データ基盤におけるIaCの重要性とその運用
mtpooh
3
380
チームが毎日小さな変化と適応を続けたら1年間でスケール可能なアジャイルチームができた話 / Building a Scalable Agile Team
kakehashi
2
220
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
1
130
実践! ソフトウェアエンジニアリングの価値の計測 ── Effort、Output、Outcome、Impact
nomuson
0
2k
Docker Desktop で Docker を始めよう
zembutsu
PRO
0
150
自社 200 記事を元に整理した読みやすいテックブログを書くための Tips 集
masakihirose
2
320
Accessibility Inspectorを活用した アプリのアクセシビリティ向上方法
hinakko
0
180
Featured
See All Featured
KATA
mclloyd
29
14k
Embracing the Ebb and Flow
colly
84
4.5k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
A Philosophy of Restraint
colly
203
16k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Making Projects Easy
brettharned
116
6k
Measuring & Analyzing Core Web Vitals
bluesmoon
5
210
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Side Projects
sachag
452
42k
Building Adaptive Systems
keathley
38
2.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
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