Pra*_*tic 6 .net git nuget nuget-package
我们正在构建一个包含多个存储库的系统。其中一些是常见的。该解决方案是使用 .net 技术、nuget 和 jenkin 服务器构建的。
我们正计划引入版本控制。所有二进制文件都应该有像 Major.Minor.Patch.Build 这样的产品版本。
我们将在 CI 服务器上有一个专用的 Nuget 服务器,我们将在其中发布常见项目的内部包。同样,我们将在开发人员的本地机器上创建一个 nuget 服务器。
这是问题场景:
支持一位开发人员正在开发一个长期运行的功能分支。而这个特性需要跨多个分支(包括一个公共分支)进行更改。开发人员将为两个存储库创建功能分支并开始处理它们。
由于我们将有一个构建功能分支的工作(无论何时完成任何提交或在 CI 服务器上提出拉取请求),CI 服务器将在中央 nuget 服务器上为公共存储库创建一个 nuget 包。
如果生成的 nuget 包具有相同的版本(与前一个版本相同),它将替换现有的包。
所以版本应该不一样。我们可以增加先前版本的任何部分,例如构建部分,或者我们可以在版本号的末尾附加 -featureName。应该首选哪一个?
如果我们也在开发机器上做这两件事中的任何一件,开发人员每次在分支之间切换时都必须更改包引用。因此,理想情况下,在开发机器上生成的包应该替换之前的包。但是在这种情况下,开发人员在分支之间切换,他必须确保构建适当的公共包。
请为此场景提出任何标准解决方案。
感谢 Advnace
您可以查看“GitVersion”(https://gitversion.readthedocs.io/en/latest/),它可以帮助您根据 git 提交拓扑和分支名称轻松生成具有不同版本的每个新包。
每次推送都会构建一个具有不同名称的包。
特别是现在 nuget 在最新版本中支持 SemVer V2(如果需要,请更新)。
也许您还应该看看“主干基础编程”和功能切换以使用更少的分支,这将简化您的开发。
也许还可以看看“monorepo”,这也会有所帮助。
| 归档时间: |
|
| 查看次数: |
2161 次 |
| 最近记录: |