我一直在对自己进行有关 monorepos 的教育,因为我相信它对我的团队和我们项目的当前状态来说是一个很好的解决方案。我们有多个网络产品(客户端门户、内部门户、API、核心共享代码)。
我正在努力寻找我想要找到的答案的地方是版本控制。
当您的所有项目和产品都在一个单一存储库中时,版本控制策略是什么?
从 CI 的角度来看,当您在项目 A 中提交某些内容时,您是否应该在所有项目中启动整套测试以确保没有任何问题发生,即使没有必要对依赖/共享模块进行更改?
最佳答案
What is the versioning strategy when all of your projects and products are inside a monorepo?
我建议一个版本适合所有人,原因如下:
release-x.x.x
例如。如果出现错误,您无需检查“XXX 的哪个版本是 YYY 使用的”And from a CI perspective, when you commit something in project A, should you launch the whole suite of tests in all of the projects to make sure that nothing broke, even though there was no necessarily a change made to a dependency/share module?
如果测试不需要特别长的时间来执行,那么这不会造成任何伤害。我肯定会推荐这个。您的测试运行得越频繁,您就能越早发现时间相关或环境相关的错误。
如果您出于某种原因不想一直运行测试,您可以查询您的 VCS 并编写一个脚本,该脚本根据已更改的内容有条件地触发测试。这在很大程度上依赖于 VCS 和 CI 服务器之间的集成。
关于continuous-integration - 如何在 monorepo 中对产品进行版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47225641/