【发布时间】:2020-05-27 13:20:21
【问题描述】:
Lerna 在运行 Github 操作的工作流程期间无法正确检测包更改。
如果我没有进行任何与包相关的更改,请提交并运行
lerna updatedlocally。它告诉我找不到更改的包这是正确的和预期的。如果我进行与包相关的更改,请在本地提交并运行
lerna updated。它告诉我找到了 x 个准备发布的包,这也是正确且符合预期的。
但是,如果我根据1 or 2 推送提交。我在我的 github 操作工作流程中运行 lerna updated 的步骤总是告诉/列出我所有可以发布的包都是错误的。
我想知道为什么以及如何解决它???
如果我没有进行与包相关的更改,这是我在本地看到的内容
lerna notice cli v3.20.2
lerna info versioning independent
lerna info Looking for changed packages since @xxx/bar@2.3.4
lerna info No changed packages found
这是我在将与 Github 无关的包相关的更改推送到 Github 后在工作流日志中看到的内容
> lerna updated -l
lerna notice cli v3.20.2
lerna info versioning independent
lerna info Assuming all packages changed
@xxx/bar v2.3.4 packages/Bar
@xxx/foo v1.4.4 packages/Foo
@xxx/hulk v1.0.4 packages/Hulk
lerna success found 3 packages ready to publish
这是我的工作流程
name: Publish
on:
push:
branches:
- master
jobs:
unit-test:
name: UnitTest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
- run: npm ci
- run: npm test
publish:
name: Publish NPM Packages
needs: unit-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- run: npm ci
- run: git config --global user.email "xxx"
- run: git config --global user.name "xxx"
- run: npm run updated
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}
这是我的 package.json
{
"name": "root",
"devDependencies": {
"jest": "^25.1.0",
"lerna": "^3.20.2"
},
"scripts": {
"updated": "lerna updated -l",
"test": "jest"
}
}
这是我的 lerna 设置
{
"packages": [
"packages/*"
],
"version": "independent",
"command": {
"publish": {
"allowBranch": "master",
"conventionalCommits": true,
"message": "chore(release): updated release notes and package versions"
}
}
}
【问题讨论】:
-
我对 lerna 一无所知,所以这是一个长镜头,但 lerna 是否会尝试读取 git 提交以确定它是否应该发布?如果是这种情况,您可能想尝试使用
actions/checkout的fetch-depth输入来签出不止1 次提交(这是默认设置)。见here。
标签: github npm github-actions lerna monorepo