You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过 GitHub Workflow 在 Lerna 中为旧主/次版本发布补丁版本

Lerna 旧版本线补丁发布方案

步骤1:创建旧版本专属维护分支

首先找到package-a@1.4.0版本对应的提交哈希,创建独立的维护分支,避免影响main分支的代码:

# 查看历史提交找到1.4.0版本对应的提交ID
git log --oneline
# 基于对应提交创建维护分支
git checkout -b package-a/1.4.x <1.4.0版本对应的提交哈希>

步骤2:提交补丁修复代码

在package-a/1.4.x分支上完成补丁修复,提交信息遵循conventional commits规范,使用fix:前缀标识补丁更新。

步骤3:配置Lerna发版参数

在维护分支执行发版时,需指定仅针对package-a发布,避免影响其他包版本,同时指定非latest的分发标签避免覆盖线上最新版本:

# 生成1.4.1版本号、打版本标签
lerna version patch --scope package-a --yes --force-publish=package-a --no-changelog
# 发布补丁版本,指定1.x-lts标签,不覆盖默认latest标签
lerna publish from-git --scope package-a --yes --dist-tag 1.x-lts

步骤4:新增独立的GitHub Workflow

新增单独的工作流文件.github/workflows/release-1x.yml,仅监听维护分支的push事件,和原有main分支的工作流完全隔离:

name: Release Package-A 1.x Maintenance Version
on:
  push:
    branches:
      - 'package-a/1.4.x'

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: actions/setup-node@v4
        with:
          node-version: 18
          registry-url: 'https://registry.npmjs.org'
      - run: yarn install --frozen-lockfile
      - name: Publish patch version
        run: |
          lerna version patch --scope package-a --yes --force-publish=package-a --no-changelog
          lerna publish from-git --scope package-a --yes --dist-tag 1.x-lts
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

原有main分支的工作流无需任何修改,两个工作流触发条件完全独立,不会互相干扰。

注意事项

  • 维护分支仅用于旧版本补丁修复,不要合并main分支的新功能代码
  • 如果有多条旧版本线需要维护,按照相同规则创建对应维护分支,在workflow的branches配置中添加对应分支匹配规则即可
  • 所有补丁提交必须遵循conventional commits规范,确保Lerna可以正确识别版本升级类型

内容的提问来源于stack exchange,提问作者Bhanu Prakash Alapati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 21:24:03