GitVersion:Octopus Deploy 在 Nuget 包版本上拒绝了多个候选版本
Posted
技术标签:
【中文标题】GitVersion:Octopus Deploy 在 Nuget 包版本上拒绝了多个候选版本【英文标题】:GitVersion: Multiple release candidates rejected by Octopus Deploy over Nuget package version 【发布时间】:2016-09-04 23:50:59 【问题描述】:我正在使用 GitVersion 对我正在构建的 .net 产品进行语义版本控制。在特定版本的工作期间,我通常会将多个候选版本部署到“开发”和“暂存”环境。
当我尝试通过Octopus Deploy 进行部署时,结果发现所有候选版本共享相同的 Nuget 包版本。因此,Octopus 与第一个候选版本配合得很好,但拒绝接受以下 RC。
让 Nuget 包版本反映候选发布版本之间的差异以便 Octopus 将它们接受到其 Nuget 商店的最佳方法是什么?
其他细节:
我正在使用 GitHub Flow,因此只有 master 和 feature 分支以及部署始终来自 master。 我的构建工具是 TeamCity。【问题讨论】:
【参考方案1】:根据您的描述,您最好的选择可能是切换到使用持续部署模式。
这在此处记录:
http://gitversion.readthedocs.io/en/latest/more-info/incrementing-per-commit/
这基本上会将 GitVersion 切换到为存储库中的每个提交创建一个新的、唯一的版本号的模式。然后,您可以在特定点标记以将版本号向前移动。 GitVersion GitHub 存储库本身也使用了相同的技术。
如果需要,此配置可应用于特定分支。
【讨论】:
【参考方案2】:我不知道您是如何以及在何处构建项目的。但是您应该像以下选项一样命名您的包版本控制。编号为 nuget 包的最大版本将是最新的 Octopus 版本。如果您使用不同的代码存储库分支打包,如果版本号相同,您应该会失败。您应该在版本号末尾添加分支名称“1.0.0.0-dev”、“1.0.0.0-master”、“1.0.0.0-hotfix”。
用于TFS 构建模板(内部版本号格式) $(日期:yy.MMdd.HH.mm)
for TFS nugetter 构建模板(版本或版本种子文件路径) 0.0.J.B-Hotfix
为Jenkins version number plugin $BUILD_YEAR.$BUILD_MONTH.$BUILD_DAY.$BUILDS_TODAY
【讨论】:
以上是关于GitVersion:Octopus Deploy 在 Nuget 包版本上拒绝了多个候选版本的主要内容,如果未能解决你的问题,请参考以下文章
在 Octopus Deploy 中为多个项目定义角色和环境
如何将不存在的部署目标配置为 Octopus Deploy?
部署应用程序时,Octopus Deploy 未合并我的转换文件
Octopus Deploy:如何将不同的项目部署到不同的生产机器上