描述错误
在预发布分支上运行(yarn/npx) auto shipit
时, package.json
不会更新。
在这种情况下, (yarn/npx) auto shipit --dry-run --quiet
没有报告正确的版本号。
这会导致下游问题,因为版本号用于标记 docker 图像和其他工件。
再现
next
auto shipit
在 Github Action 中运行auto
正确发布到github预期行为
package.json 更新或auto shipit --dry-run
根据预发布标签计算。
环境信息:
“当前版本”在这里已经是错误的,当前标签是 v0.2.0-next.11
yarn run v1.22.10
$ /home/rwa/Project/####/node_modules/.bin/auto info
Environment Information:
"auto" version: v9.59.1
"git" version: v2.29.0
"node" version: v14.14.0
Project Information:
✔ Repository: #####
✔ Author Name: Robert Wawrzyniak
✔ Author Email: robert.wawrzyniak@###.de
✔ Current Version: v0.2.0-next.10
✔ Latest Release: v0.1.0 (https://github.com/####/releases/tag/v0.1.0)
✔ Labels configured on GitHub project
GitHub Token Information:
✔ Token: [Token starting with 62de]
✔ Repo Permission: admin
✔ User: thuringia
✔ API: undefined (undefined)
✔ Enabled Scopes: repo
✔ Rate Limit: 4772/5000
Done in 3.39s.
Time: 0h:00m:04s
附加上下文
这可能与#1490有关?
这似乎是设计使然:
https://github.com/intuit/auto/blob/2f03089f43cc098ac2687c7ab3ca5fd8d2502a1c/plugins/npm/src/index.ts#L869
此处仅针对基本分支运行凹凸,但没有配置标志来更改此设置。
这是设计使然。 如果版本已提交,则在合并到 master 时可能会导致合并冲突。 虽然创建了一个 git 标签
这个问题也在影响我。
这是设计使然。 如果版本已提交,则在合并到 master 时可能会导致合并冲突。 虽然创建了一个 git 标签
使用auto shipit
确保package.json
版本与 CI 部署保持同步的推荐方法是什么?
我不确定我是否完全理解用例@smithki。 @thuringia的用例是有道理的,他需要版本来更新其他东西,但我很犹豫要改变行为。 你能详细说明你想要完成什么吗?
对不起,我可能有误会。 从问题的措辞来看,我推测next
分支不会收到更新的package.json
版本,但是main
分支会auto
-这里的初学者) . 我的用例与原始问题相同,但具体来说:
我需要在 _build_ 时读取 NPM 库的package.json
版本,以便可以将当前的package.json
版本作为环境变量注入。 这意味着我需要在构建运行之前对package.json
文件进行版本控制。 简单地导入package.json
与我当前的 TypeScript 设置并不兼容,这取决于rootDirs
中的tsconfig.json
(并且package.json
不包含在rootDirs
,因此是编译器错误,因此需要环境变量)。
你能做auto
做的事吗? https://github.com/intuit/auto/blob/master/packages/core/src/auto.ts#L306 -L310
我会看看我是否可以解决它,而不是我打算破坏这个问题的原始主题。
你能做自动做的事吗? https://github.com/intuit/auto/blob/master/packages/core/src/auto.ts#L306 -L310
不幸的是不是,因为代码旨在在客户端运行(如果我找不到解决方法,我将打开一个新问题)。
啊,又一次投票给我尽快修复空运行行为。 下周末将考虑修复所有问题。 感谢您的反馈和使用auto
!
@hipstersmoothie感谢您的快速回复:) 你总是让我感到惊讶
我现在找到了非常可靠的解决方法, auto shipit --dry-run --plugins git-tag
。 无论如何,以这种方式为预发布检查下一个版本实际上很有意义。
感谢您这么快就试运行改进。 如果您想尝试金丝雀版本,请告诉我。 我很乐意提供帮助。
无论如何,非常感谢auto
! 它让我的生活变得更轻松
@thuringia @smithki你能测试一下 v10 是否能解决你的问题吗?
@hipstersmoothie这在 v10 中运行良好👍
虽然它明显变慢了,或者说它需要运行shipit
而没有--dry-run
。
谢谢你这么快把它弄出来!
不确定这是否是错误:
当我使用yarn add -D auto@next
升级包时,对package.json
和yarn.lock
的更改在运行auto shipit --dry-run
后消失了。 v10 仍在我的node_modules
因此看起来工作目录已重置。
不过,它明显更慢,或者更确切地说,它需要在没有 --dry-run 的情况下运行 Shipit。
我看看能不能改进但由于我们现在正在调用插件,它做了更多的工作来打印真正的下一个版本。
运行 auto shipit --dry-run 后,对 package.json 和 yarn.lock 的更改消失了
啊这是一个错误。 对于空运行,我跳过了干净检查但没有跳过 git reset
@thuringia你要发布什么类型的项目?
@hipstersmoothie我完全没问题,现在干运行速度变慢了。 没有那么大的区别。 我主要是说你觉得有变化,也许我应该在那里添加一个表情符号😄
不过,任何性能提升总是受欢迎的。
在这种情况下,它是一个混合项目,主要由一个 Java 应用程序和一些 lambda 表达式组成。 要创建一个版本,我必须:
并不是auto
的默认用例😂
通常,我将它用于具有更简化设置的 Node 或 React 项目,但在实际发布版本之前,我从不需要获取版本号,就像我需要这个特定项目一样
:rocket: 问题已在v10.0.0
:rocket:
最有用的评论
啊,又一次投票给我尽快修复空运行行为。 下周末将考虑修复所有问题。 感谢您的反馈和使用
auto
!