TeamCity和Octopus Deploy如何处理具有相同项目名称的多个代码分支(默认和开发)?

7

目前,TeamCity正在使用AssemblyInfoPatcher插件和Project.Website.2.x.x.x.nupkg来监视和构建Mercurial开发分支,并在工件中出现。然后Octopus将此部署到一个暂存环境中。太棒了。

现在我只是想弄清楚如何设置Octopus Deploy来处理默认分支的生产部署。

我已经设置好了TeamCity从默认分支生成Project.Website.1.x.x.x.nupkg,但是Octopus如何知道哪个软件包是从开发分支进行的暂存构建,哪个是从默认分支进行的生产构建,因为除了版本号外,它们与Project.Website中的同名项目相同?

目前,我有一个暂存环境、暂存角色和一个暂存项目组。我是否只需要为生产创建一个新的组环境和角色?如果是这样,Octopus如何知道如何执行其任务呢?

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

1个回答

3

你需要在Octopus Deploy中为生产环境设置一个环境。

假设:

  • 你在Octopus中的生产环境被命名为“Production”
  • 你正在使用octo.exe在TeamCity的命令行构建步骤中创建和部署发布。

你可以使用octo.exe的--deployto选项来指定要将新创建的发布部署到哪个环境。类似这样:

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

此命令将:

  • 使用你的TeamCity构建号作为版本创建一个发布
  • 对于所有软件包,使用你的TeamCity构建号作为软件包版本
  • 将发布部署到“Production”环境

提示:有时候需要几秒钟时间才能将工件发布到TeamCity的NuGet feed中。如果你的octo命令尝试使用尚未发布的软件包版本创建发布,则该命令(和构建步骤)将失败。我在脚本中添加了一个30秒的“等待”,以确保构建服务器有足够的时间来发布当前版本的软件包后再运行octo.exe命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接