release-it(项目): 发布工具学习

深入学习 release-it 发布工具
更新于: 2023-11-23 15:28:09

大纲

  • 安装
  • 基本用法
  • 配置文件
  • 常用项目实践
  • 插件开发/源码

全局

## ----- 以下工作做一次即可 -----
# nvm 切到 node20
nvm alias default 20
# yarn 安装 release-it
yarn global add release-it auto-changelog 

## 当项目发版完成做以下工作
# 1. 切换到主流版本
nvm use 20
# 2. 发版,执行 release-it 命令
release-it

公司项目

一般的项目,需要打 tag,用于回滚。

一般项目改一下这个就可以了 "awesome-v${version}"

发版的样式gitlab 发版,能看到tag
{
  "git": {
    "changelog": "git log --pretty=format:\"* %s (%h)\" ${from}...${to}",
    "requireCleanWorkingDir": true,
    "requireBranch": false,
    "requireUpstream": true,
    "requireCommits": false,
    "tagName": "awesome-v${version}"
  },
  "hooks": {
    "after:bump": "auto-changelog -p && git add CHANGELOG.md"
  },
  "gitlab": {
    "release": false,
    "releaseName": "Release ${version}",
    "skipChecks": true,
    "releseNotes": "git log --no-merges --pretty=format:\"* %s %h\" ${latestTag}...main"
  },
  "npm": {
    "publish": false,
    "skipChecks": true
  }
}

项目release

确保项目发版完有tag生成,如果有问题,可以很方便的在 jenkins上完成回滚

  1. 切到相关的 production 分支(如: main-kazakhstan-production)
  2. 切换到主流 nodejs 版本(因为项目中使用的是 8.0,此命令行不支持),如 nodejs v20
  3. 安装 release-it 命令
  4. 执行 release-it 完成封版

个人 npm包

  • 主要是生成文档
  • 还有更新关键词
  • 另外同步到 taobao
  • 考虑到“GFW”,需要 proxy
{
  "git": {
    "requireCleanWorkingDir": false
  },
  "hooks": {
    "before:init": ["npm run docs"],
    "after:init": ["t2k"],
    "after:bump": ["npm run build"],
    "after:release": ["npm pkg get name | cnpm sync"]
  },
  "github": {
    "release": true,
    "proxy": "http://127.0.0.1:9090"
  }
}

参考