目前,teamcity正在使用AssemblyInfoPatcher插件监视并建立一个Mercurial开发分支,并且Project.Website.2.x.x.x.nupkg出现在工件中, Octopus 将其部署到暂存环境中。很棒的东西。

现在,我只是想让我了解如何设置 Octopus 部署,以处理现在也部署到生产环境中的默认分支。

我已经设置了Teamcity来从默认分支中生成Project.Website.1.xxxnupkg,但是 Octopus 如何才能知道哪个软件包是来自develop分支的暂存版本,哪个是默认分支中的生产版本,除了它们的版本号外与Project.Website中的项目名称相同吗?

目前,我有一个暂存环境,暂存角色和暂存项目组。我只需要为生产创建一个新的团队环境和角色,如果是的话, Octopus 怎么知道该如何做?

两种工具的工具包都很棒,我确定我现在已经很接近了。

最佳答案

您需要在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提要中。如果您的octo命令尝试使用尚未发布的软件包版本创建发行版,则该命令(和构建步骤)将失败。在运行octo.exe命令之前,我在脚本中构建了30秒的“ sleep ”,以确保构建服务器有时间发布软件包的当前版本。

    关于mercurial - teamcity octopus部署以相同的项目名称处理多个代码分支(默认和开发),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14395671/

    10-13 07:43