teamcity octopus deploy使用相同的项目名称处理多个代码分支(默认和开发)

时间:2013-01-18 09:15:49

标签: mercurial nuget teamcity-7.0 octopus-deploy

目前,teamcity正在观看并使用AssemblyInfoPatcher插件构建一个mercurial develop分支,Project.Website.2.x.x.x.nupkg会在工件中出现,而章鱼正在将其部署到暂存环境中。很棒的东西。

现在我正试图了解如何设置章鱼部署以处理现在部署到生产的默认分支。

我已经设置了teamcity来从默认分支生成Project.Website.1.xxxnupkg但是octopus如何知道哪个包是来自develop分支的分段构建,哪个是默认分支的生产,只看版本编号与Project.Website中的项目名称相同吗?

目前我有一个暂存环境,暂存角色和暂存项目组。我是否只需要为制作创建一个新的组环境和角色,如果是这样,章鱼如何知道如何做到这一点?

这两个工具都很棒,我相信我现在已经非常接近了。

1 个答案:

答案 0 :(得分:3)

您需要在Octopus Deploy中设置生产环境。

假设:

  • 您在Octopus的生产环境名为Production
  • 您正在TeamCity的命令行构建步骤中使用octo.exe来创建和部署版本。

您可以使用octo.exe的--deployto选项指定要将新创建的版本部署到的环境。像这样:

octo create-release --server=http://your-octopus/api --project=Project.Website --version=%build.number% --packageVersion=%build.number% --deployto=Production

此命令将:

  • 使用您的TeamCity内部版本号作为版本
  • 创建发布
  • 使用您的TeamCity内部版本号作为所有软件包的软件包版本
  • 将发布部署到生产环境

提示:有时TeamCity需要几秒钟才能将工件发布到NuGet Feed中。如果octo命令尝试使用尚未发布的包版本创建发行版,则命令(和构建步骤)将失败。在运行octo.exe命令之前,我在脚本中构建了30秒的“休眠”,以确保构建服务器有时间发布当前版本的软件包。