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:如何将不同的项目部署到不同的生产机器上

在 Octopus Deploy 中,您可以使用每个环境设置的变量作为 feed 的值吗?

在 Octopus Deploy 中,第一次将主要或次要版本部署到环境时如何要求批准?