首页
/ 《Lerna Monorepo GitHub Actions 发布流程》启动和配置教程

《Lerna Monorepo GitHub Actions 发布流程》启动和配置教程

2025-05-09 19:35:51作者:齐添朝

1. 项目的目录结构及介绍

lerna-monorepo-github-actions-release 项目是一个使用 Lerna 管理的多包仓库(monorepo)项目,它通过 GitHub Actions 实现自动化发布。项目的目录结构大致如下:

lerna-monorepo-github-actions-release/
├── packages/                         # 存放所有子包的目录
│   ├── package-1/                    # 子包1
│   │   ├── package.json              # 子包1的配置文件
│   │   └── ...                       # 子包1的其他文件
│   ├── package-2/                    # 子包2
│   │   ├── package.json              # 子包2的配置文件
│   │   └── ...                       # 子包2的其他文件
│   └── ...                           # 其他子包
├── lerna.json                        # Lerna 的配置文件
├── .gitignore                        # Git 忽略文件
├── .github/                          # GitHub Actions 工作流的目录
│   └── workflows/                    # 工作流文件存放目录
│       └── release.yml               # 发布工作流文件
└── ...                               # 其他项目文件
  • packages/:存放所有子包的目录。
  • lerna.json:Lerna 的配置文件,定义了项目的结构以及如何管理包。
  • .gitignore:指定 Git 忽略跟踪的文件和目录。
  • .github/:存放 GitHub Actions 相关的工作流配置文件。

2. 项目的启动文件介绍

在 Lerna Monorepo 项目中,并没有一个单一的“启动文件”。通常,你会进入到一个具体的子包目录中,使用 npmyarn 运行相应的脚本。例如,如果你想启动 package-1 子包,你可以执行以下命令:

cd packages/package-1
npm run start

或者使用 yarn

cd packages/package-1
yarn start

启动命令通常在子包的 package.json 文件中定义。

3. 项目的配置文件介绍

  • lerna.json:Lerna 的配置文件,它定义了如何处理包的版本、依赖关系管理等。以下是一个示例配置:
{
  "packages": ["packages/*"],
  "version": "independent",
  "command": {
    "publish": {
      "skipGitCheckout": true
    }
  }
}
  • .github/workflows/release.yml:这是一个 GitHub Actions 工作流配置文件,用于自动化发布流程。以下是一个示例配置:
name: Release

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install dependencies
        run: npm install

      - name: Publish packages
        run: npx lerna publish

这个配置会在推送到带有 v* 标签的分支时触发,然后执行一系列步骤,包括检出代码、设置 Node.js 环境、安装依赖和发布包。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
518
565
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.07 K
2.6 K
kernelkernel
deepin linux kernel
C
33
17
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
869
1.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
844
1.31 K
docsdocs
暂无描述
Markdown
867
5.73 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.29 K
1.4 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.37 K
902
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.13 K
747
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
845
434