1

我正在使用GitVersion对正在构建的 .net 产品进行语义版本控制。在针对特定版本的工作期间,我通常会将多个候选版本部署到“开发”和“暂存”环境。

当我尝试通过Octopus Deploy进行部署时,结果发现所有候选版本都共享相同的 Nuget 包版本。因此,Octopus 与第一个候选版本配合得很好,但拒绝接受以下 RC。

使 Nuget 包版本反映候选版本之间的差异以便 Octopus 将它们接受到其 Nuget 商店的最佳方法是什么?

额外细节:

  • 我正在使用 GitHub Flow,因此只有 master 和 feature 分支以及部署始终来自 master。
  • 我的构建工具是 TeamCity。
4

2 回答 2

1

根据您的描述,您最好的选择可能是切换到使用持续部署模式。

这记录在这里:

http://gitversion.readthedocs.io/en/latest/more-info/incrementing-per-commit/

这基本上会将 GitVersion 切换到为存储库中的每个提交创建一个新的、唯一的版本号的模式。然后,您可以在特定点标记以将版本号向前移动。GitVersion GitHub 存储库本身使用了相同的技术。

如果需要,此配置可应用于特定分支。

于 2016-05-10T13:17:36.420 回答
0

我不知道您如何以及在哪里构建您的项目。但是您应该像以下选项一样命名您的包版本控制。编号为 nuget 包的最大版本将是最新的 Octopus 版本。如果您使用不同的代码存储库分支打包,如果版本号相同,您应该会失败。您应该在版本号末尾添加分支名称“1.0.0.0-dev”、“1.0.0.0-master”、“1.0.0.0-hotfix”。

对于TFS 构建模板(内部版本号格式)$(Date:yy.MMdd.HH.mm)

用于TFS nugetter构建模板(版本或版本种子文件路径)0.0.JB-Hotfix

对于Jenkins 版本号插件 ${BUILD_YEAR}.${BUILD_MONTH}.${BUILD_DAY}.${BUILDS_TODAY}

于 2016-05-10T07:49:42.473 回答