八达通部署和多个分支/候选发布者

时间:2015-05-01 10:18:11

标签: release tfs2013 release-management octopus-deploy

我们目前已将我们的代码发布到Production,因此 cut 并分支以确保我们可以支持我们当前的版本,同时仍然支持热修复而不会破坏当前版本 - 发展。

这是我们目前的结构:

Project-
/Development
/RC1

直到最近才使用八达通,我们有以下过程:

Dev->Staging/Dev Test->UAT

哪个工作正常,因为我们没有实际发布。

我的问题是八达通如何支持我们的新工作方式?

我们是否在Octopus中创建一个名为RC1的新/克隆项目,并将RC1分支中的CI添加到其中?然后根据需要添加/删除这些RC不再需要?

还是有其他方法我们已经明显错过了吗?

2 个答案:

答案 0 :(得分:2)

不幸的是,Octopus没有直接支持 - true 支持分支(尚未)。它位于roadmap下的better branching support 3.1。他们已经talking about this problem了一段时间了。

您提到的一个想法是为每个分支克隆您的项目。您可以在要克隆的项目的“设置”选项卡(右侧)下执行此操作。这将允许您复制项目并简单地将其重命名为您的一个分支 - 因此一个PreRelease或Release Candidate项目和其他是您的主线Dev(我将保留项目的相同名称)。我假设你拥有同一个项目组中的所有内容。

或者,您可以在不同分支的项目中更改NuSpec文件,以便您可以清楚地看到在概览项目页面或仪表板上部署的内容。因此,对于你的RC分支,你可以在RC分支中的NuSpec中添加后缀-release,这是合法的(rules on Semantic Versioning谈论规则#9的预发布)。这样,您可以使用相同的项目,但要部署不同的包。如果您的目标服务器是相同的,那么与克隆相比,这可能是“更轻”或更简单的方法。

答案 1 :(得分:0)

我在这里写了关于我们如何做到这一点的博客: http://www.alexjamesbrown.com/blog/development/working-branch-deployments-tfs-octopus/

这有点像黑客,但总结一下:

  • 在TFS中创建分支创建分支特定的构建定义
  • 为Octopack创建分支特定的放置位置
  • 创建分支机构特定八达通部署项目(通过克隆“主要”部署
  • 编辑新克隆的部署,将nuget Feed位置重新指向您的 分支特定输出位置,在步骤3中创建