Auto: 问题 - lerna ERR! ENOGIT 在 Gitlab CI 中分离 git HEAD

创建于 2020-04-19  ·  28评论  ·  资料来源: intuit/auto

描述错误

运行shipit时,lerna在最后一步出错

这可能与 lerna 更相关,因为我看到错误报告了几次,但我想知道你们是否有任何建议,因为 lerna 调用在 auto 内?

编辑:本地测试返回不同的错误。 将进一步研究并跟进!

所有28条评论

在本地运行时似乎工作正常,只是不在 ci 环境中。 唔

首先,由于我们大量使用 GitHub API,因此 IDK 自动与 GitLab 一起工作的可能性有多大。 诸如查找拉取请求、发布版本和许多其他事情之类的事情不会按预期工作。


至于分离头问题:大多数 CI 环境不会以相同的方式检查您的代码。 要让auto工作,它需要一个相对完整的 git repo 视图。 许多 CI 环境试图变得聪明而不是做一个完整的结帐。 有些人会做一个浅克隆(github操作)。 有些人会预先合并你的分支并签出一个 tmp 分支(詹金斯)

查看您的日志,似乎 GitLab 进行了相对完整的结帐,但头部分离(您不在分支上)。 尝试查看master

# See what branches are available
git branch -a

# Checkout master
git checkout master

这似乎解决了这个错误,但现在它没有因为这个而发布 :cry:

进行了快速搜索,但我似乎无法弄清楚导致该错误消息的原因。

该错误来自auto

https://github.com/intuit/auto/blob/adf4e85590a75a9fd97945b4803f3535b8c45383/packages/core/src/auto.ts#L405

不过,它可能正在吞下另一个错误。 如果您需要,我可以在此功能中添加要打印的日志

:facepalm: 不知道我是怎么错过的。 如果设置了详细标志,是否可以输出该错误? 我意识到我无法在本地执行此操作,因为我无法在本地创建错误 lol

是否有可能-silent标志应该是--silent ? 还是--quiet ? 我不确定 false 和 -silent 标志的用途。

https://gitlab.com/jdalrymple/gitbeaker/-/jobs/518962749#L1391

哦,伙计🤦我一定是删除了-

https://github.com/intuit/auto/pull/1160

另一个问题修复了 butttt hehe还有其他建议吗?

您似乎仍在使用旧版 Canary "auto" version: v9.28.2-canary.1160.15021.0而不是最新发布的版本

哎呀! 刚修好。 仍然运气不好:( 现在出现错误:命令失败:git merge-base --is-ancestor :cry:

嗯,再次阅读日志,是否可能使用错误的远程 url

ℹ info Using remote: https://gitlab-ci-token:[MASKED]@gitlab.com/jdalrymple/gitbeaker.git

这实际上可能是问题所在。 该 repo 托管在 github 上,但我使用 gitlab ci 作为管道。 它看起来像是在推断要推送到的遥控器,但推断不正确。 不知道如何改变它,嗯

所以我通过显式设置远程 url 来解决这个错误。 有点hacky,但它现在可以工作。 试图解决一个奇怪的NPM错误现在。 很近 :/

有效!!! 必须明确设置一些东西,但是耶! 谢谢您的帮助!!

快速提问@hipstersmoothie ,以避免打开新问题。 自动处理创建新的 github 版本吗? 它创建了标签和发行说明很好,但没有 github 发布 :(

它也应该创建 github 版本。 我会看看你发布的内容。 如果您也想要更快的回复,我们可以在 twitter 上发邮件

在 GitLab 上构建可能是大多数这些问题的根源。 正如您发现的,远程 CI 服务往往会做出一系列不同的假设。

也就是说,我们可能能够改进远程逻辑并检测我们何时使用 gitlab CI。

在这里您可以更改代码以找出远程https://github.com/intuit/auto/blob/master/packages/core/src/auto.ts#L556

它也应该创建 github 版本。 我会看看你发布的内容。 如果您也想要更快的回复,我们可以在 twitter 上发邮件

我将在大约 10 分钟内发布另一个版本,以便您可以看到最终发生的情况,但最后发布的版本我必须手动添加 github 发行说明。

现在正在考虑修改该限制。 尝试获取git log AH 时似乎出错,它使用带有前缀“v”的标签,但我的 lerna 配置排除了前缀?

ℹ  info      Using 17.0.3 as previous release.
ℹ  info      Current "Latest Release" on Github: v17.0.3
ℹ  info      Getting commits from v17.0.3 to HEAD

它不应该寻找从标签到头部的提交,所以在这种情况下是 17.0.3 到 HEAD?

这是因为 auto 默认为v前缀。 我刚刚打开了一个 PR,它将使自动尊重 lerna 配置

https://github.com/intuit/auto/pull/1170

您也可以在自动配置中设置noVersionPrefix 。 但我认为自动化更好

您也可以在自动配置中设置noVersionPrefix 。 但我认为自动化更好

这是定义该配置的更好方法吗? 大概吧?

问题是您还必须设置 lerna 配置

https://github.com/intuit/auto/pull/1170

我让它自动,所以你只需要升级自动

您可能需要编辑最后一个标签/版本以使其没有v前缀

生病检查! 谢谢!

此页面是否有帮助?
0 / 5 - 0 等级