Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Automated Dependency Updates with Renovate

7,494 views

Published on

Renovate を使った npm 依存パッケージの自動アップデートについて

Cybozu Meetup フロントエンド #2 での発表資料
https://cybozu.connpass.com/event/91036/

Published in: Technology
  • Be the first to comment

Automated Dependency Updates with Renovate

  1. 1. Automated Dependency Updates with Renovate @teppeis Cybozu Meetup #14 Jun 21, 2018
  2. 2. Hello! 4 @teppeis 4 4 4 ! + " + # = $ 4 Deckset 2
  3. 3. ! npm A. B. C. Greenkeeper 3
  4. 4. ! 4 4 4 deprecated ... 4 4 4 4
  5. 5. 5
  6. 6. 6
  7. 7. ! Greenkeeper 7
  8. 8. 8
  9. 9. ☠ 9
  10. 10. 10
  11. 11. 11
  12. 12. 12
  13. 13. 13
  14. 14. ☠ 14
  15. 15. ! Why? 15
  16. 16. https://www.reddit.com/r/ProgrammerHumor/comments/6s0wov/heaviest_objects_in_the_universe/ 16
  17. 17. npm 17
  18. 18. 18
  19. 19. Renovate 19
  20. 20. 20
  21. 21. Renovate 4 https://renovatebot.com 4 PR GitHub App 4 Greenkeeper 21
  22. 22. Renovate 4 4 / 22
  23. 23. 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. 24. 24
  25. 25. ! 1. https://github.com/apps/renovate 2. Onboarding PR 3. renovate.json 4 PR 4. PR 25
  26. 26. ! Demo 26
  27. 27. https://github.com/apps/renovate
  28. 28. 28
  29. 29. ! Greenkeeper 1. push 2. 3. CI 4. 29
  30. 30. ! Renovate 1. push 2. 3. CI 4. ← 30
  31. 31. Auto Merge 31
  32. 32. ! PR 1. push 2. ← 3. CI 4. 32
  33. 33. ! 4 major, minor, patch 4 patch 4 major 4 deps, devDeps, peerDeps 4 (deps "fix: ", "chore: ") 4 GitHub PR 33
  34. 34. ! 4 4 typescript semver minor major 4 @types/node major 4 4 ESLint PR 4 @babel, @angular monorepo 34
  35. 35. ⏰ 4 4 0 8 4 4 4 npm publish 24 35
  36. 36. ! 4 lock file (npm/yarn) 4 Greenkeeper ... 4 monorepo 4 package.json OK 4 Greenkeeper v3 36
  37. 37. ! 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
  38. 38. ! 4 Bazel, Python, PHP (!) 4 GitHub GitLab, VSTS 4 self-hosting 4 OSS CLI GitHub App 4 4 GitHub Enterprise 38
  39. 39. ! 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
  40. 40. ! Renovate 1. base timezone 2. devDeps pin ! :preserveSemverRanges 3. patch automerge 4. 5. shareable config 40
  41. 41. ! renovate.json { "extends": [ "config:base", ":timezone(Asia/Tokyo)", ":preserveSemverRanges", ":automergePatch" ], "schedule": "before 8am on Monday" } 41
  42. 42. ! 4 4 patch minor 4 4 ! 4 Renovate 42
  43. 43. ! 4 ! 4 ! 4 (@rarkins) 4 4 43
  44. 44. 44
  45. 45. ! Donate! 45
  46. 46. ! 100 100 npm 46
  47. 47. Tips: 4 https://renovatebot.com/dashboard 4 Renovate 4 4 47

×