Continuous integration 使用lerna和部署机器人进行Monorepo发布

Continuous integration 使用lerna和部署机器人进行Monorepo发布,continuous-integration,yarnpkg,lerna,Continuous Integration,Yarnpkg,Lerna,以下是场景: 我们希望为几个组件提供monorepo,并希望使用lerna和纱线工作区 为了确保语义版本控制不会出现问题,最好对版本号进行代码审查。 因此,package.json定义了一个version-bump脚本,该脚本只能用于增加软件包版本 测试运行且CR正常后,我们希望部署bot将包发布到我们的自定义注册表中。 为此,最好使用lernapublish--skip git,这样lerna只发布更改后的包 这里的问题是,lernapublish不仅会发布包,还会再次要求它们的版本增量。 如

以下是场景:

我们希望为几个组件提供monorepo,并希望使用lerna和纱线工作区

为了确保语义版本控制不会出现问题,最好对版本号进行代码审查。 因此,
package.json
定义了一个
version-bump
脚本,该脚本只能用于增加软件包版本

测试运行且CR正常后,我们希望部署bot将包发布到我们的自定义注册表中。 为此,最好使用
lernapublish--skip git
,这样lerna只发布更改后的包

这里的问题是,
lernapublish
不仅会发布包,还会再次要求它们的版本增量。 如果知道在不增加版本的情况下发布的选项或解决方法,那就太好了

我们当前的解决方法是使用
lerna exec npm publish
,但这将尝试再次发布已发布的包。我们也不能使用
lerna exec Thread publish
,因为在这种情况下
Thread
要求版本增量

设置如下所示:

lerna.json:

{
  "lerna": "2.5.1",
  "version": "independent",
  "npmClient": "yarn",
  "useWorkspaces": true,
  "packages": [
    "packages/*"
  ]
}
package.json

{
  "name": "…",
  "version": "0.0.0",
  "description": "…",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "…"
  },
  "workspaces": [
    "packages/*"
  ],
  "private": true,
  "scripts": {
    "version-bump": "./node_modules/lerna/bin/lerna.js publish --skip-npm",
    "test": "echo well tested"
  },
  "devDependencies": {
    "lerna": "^2.5.1"
  }
}

我也在同一条船上。该功能不存在。理想情况下,Lerna会有一个参数,你可以通过它跳过版本号的碰撞。您最好在Github上的项目中发出一些声音:

对于需要此功能的任何人,看起来他们正在为v3.0开发此功能:


单独的“版本”和“发布”命令-

感谢您的指示!我不太确定这是一个缺失的功能,还是一些神秘的命令行参数可以实现的功能。自从3.0发布以来,这个功能现在可用了。