Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lerna release 的时候做的处理 #10

Open
BUPTlhuanyu opened this issue Apr 20, 2023 · 0 comments
Open

lerna release 的时候做的处理 #10

BUPTlhuanyu opened this issue Apr 20, 2023 · 0 comments

Comments

@BUPTlhuanyu
Copy link
Owner

BUPTlhuanyu commented Apr 20, 2023

在 release 的时候会报错 Current HEAD is already released, skipping change detection.

lerna 会检查上一次 tag 对应的 commit 与当前 HEAD 之间是否有新的改动来确定是否发包,详细可见 https://zhuanlan.zhihu.com/p/354649322

如何查看是否变化

我们可以通过如下指令获取是否变化,REF_COUNT 为 0 表示没有变化

# 获取上一次 tag名称
TAGNAME=`git describe --tags --abbrev=0`
# 获取对应的 commit id
TAGCOMMIT=`git rev-list -n 1 $TAGNAME`
# 查看commit详情
git show $TAGCOMMIT --no-patch
# 上一个 tagCommit 到当前的提交数量
REF_COUNT=`git rev-list --count $TAGCOMMIT..HEAD`
echo $REF_COUNT

git show-ref --tags 的作用

在这个过程中我们也可以查看所有 tags 对应的标签对象的引用git show-ref --tags,输出如下:

0c4f264cdeaf9763e020babc8263a64fe63396ba refs/tags/talos-lite_1-0-0-1_PD_BL

加上 --deref 查看所有 tags 对应的标签对象和提交对象的引用,输出如下:

0c4f264cdeaf9763e020babc8263a64fe63396ba refs/tags/talos-lite_1-0-0-1_PD_BL
71dae6d2705be184e8bfcbc083017403bdfec875 refs/tags/talos-lite_1-0-0-1_PD_BL^{}

使用 git show <commit id> --format=fuller 分别查看两个 id 对应的信息,如下,左侧为标签对象的信息,右侧为标签对象解引用之后展示的提交对象的信息:

image

这个问题,可以通过 lerna.json 中添加对应的强制发布字段来解决,或者找出为啥每次新的commit都被打上了 tag,这里由于是流水线上的操作,某些任务做了处理,因此我们需要做对应的处理,避免发包之前打 tag。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant