Automated Dependency Updates
with Renovate
@teppeis
Cybozu Meetup #14
Jun 21, 2018
Hello!
4 @teppeis
4
4
4
!
+
"
+
#
=
$
4 Deckset
2
!
npm
A.
B.
C. Greenkeeper
3
!
4
4
4 deprecated ...
4
4
4
4
5
6
!
Greenkeeper
7
8
☠
9
10
11
12
13
☠
14
!
Why?
15
https://www.reddit.com/r/ProgrammerHumor/comments/6s0wov/heaviest_objects_in_the_universe/ 16
npm
17
18
Renovate
19
20
Renovate
4 https://renovatebot.com
4 PR GitHub App
4 Greenkeeper
21
Renovate
4
4
/
22
What's Renovate?
Renovate saves you time and reduces risk in software
projects by automating the tedious process of
updating dependencies.
Behaviour is fully customizable so there is a setting to
suit everybody.
23
24
!
1. https://github.com/apps/renovate
2. Onboarding PR
3. renovate.json
4 PR
4. PR
25
!
Demo
26
https://github.com/apps/renovate
28
!
Greenkeeper
1. push
2.
3. CI
4.
29
!
Renovate
1. push
2.
3. CI
4. ←
30
Auto Merge
31
!
PR
1. push
2. ←
3. CI
4.
32
!
4 major, minor, patch
4 patch
4 major
4 deps, devDeps, peerDeps
4 (deps "fix: ", "chore: ")
4 GitHub PR
33
!
4
4 typescript semver minor major
4 @types/node major
4
4 ESLint PR
4 @babel, @angular monorepo
34
⏰
4
4 0 8
4
4
4 npm publish 24
35
!
4 lock file (npm/yarn)
4 Greenkeeper ...
4 monorepo
4 package.json OK
4 Greenkeeper v3
36
!
Docker / CirlceCI
Docker Hub
(digest)
4 Dockerfile From
4 Node Docker
.circleci/config.yml
4 Node 6/8/10 CI
4 CircleCI digest
4 ( yarn )
37
!
4 Bazel, Python, PHP (!)
4 GitHub GitLab, VSTS
4 self-hosting
4 OSS CLI GitHub App
4
4 GitHub Enterprise
38
!
Shareable Config
4 npm
4 ESLint
4 npm install
4 ex) https://github.com/teppeis/renovate-config
4 ↑ GitHub
4 Cybozu OSS
ex) https://github.com/kintone/plugin-packer
39
!
Renovate
1. base timezone
2. devDeps pin
!
:preserveSemverRanges
3. patch automerge
4.
5. shareable config
40
!
renovate.json
{
"extends": [
"config:base",
":timezone(Asia/Tokyo)",
":preserveSemverRanges",
":automergePatch"
],
"schedule": "before 8am on Monday"
}
41
!
4
4 patch minor
4
4
!
4 Renovate
42
!
4
!
4
!
4 (@rarkins)
4
4
43
44
!
Donate!
45
!
100 100
npm
46
Tips:
4 https://renovatebot.com/dashboard
4 Renovate
4
4
47

Automated Dependency Updates with Renovate