Skip to content

概述

renovate 是什么?

renovate 是一个开源的工具,旨在自动化以下问题:

  • 检测 repository 中的依赖是否有新版本(包括开源和闭源 repository)
  • 为新版本的依赖创建升级 PR(包含 release note)

renovate 的目标

renovate 可以解决 repository 中过时的依赖关系。过时的依赖可能产生以下问题。

  • 使用已废弃的 API 所带来的“技术债务”问题
  • 跨版本升级会产生较高风险和解决升级所带来问题的时间问题

renovate 自动更新流程

  • repository 有一个 package.json 和 package-lock.json 包含 1.0.0 依赖项的版本
  • Renovate 确定版本 1.1.0 可用
  • package.json 将依赖项的版本从 1.0.0 更改为 1.1.0
  • Renovate 再运行 npm install,触发其 npm 更新 package-lock.json
  • Renovate 然后创建 PR 一起提交 package.json 和 package-lock.json 文件

如何使用 renovate

使用方式

  • 自行托管 renovate,例如:Docker
  • 使用 WhiteSource 托管的 renovate,在 repository 中安装

下面以 GitHub 为例,介绍 renovate 的使用。

将 renovate 作为 App 安装到 repository 中

  • 打开 https://github.com/apps/renovate 并单击安装按钮
  • 选择为所有 repository 安装还是指定的 repository 安装
  • 在安装成功后,你会在该 repository 看见一个“configuration renovate”的 PR
    • 此 PR 将在 repository 的根目录下创建一个基础的配置,你也可以修改这些配置
  • merge 此 PR 后会自动进行如下操作
    • 在 repository 中创建一个记录需要升级依赖的 issues,以及对应的依赖
    • 创建一个“Pin dependencies”的 PR,修改 package.json 中的版本号前缀
    • 在一定的时间内 renovate 会检查项目中的依赖项,并为有更新的依赖创建 PR

重新配置 renovate

  • 创建一个新的 git 分支
  • 全局安装 renovate 以获取 renovate-config-validator 包
  • 编辑 renovate 配置文件
  • 运行 renovate-config-validator 校验配置
  • 将新配置合并至 master