我们正在使用TeamCity服务器和OctoPack为多个部署环境构建软件包。问题是触手代理选择最新的数字版本的软件包,因此它是在所有环境中部署的相同(最新)软件包。以下是我们设置的摘要:
所以会发生的事情是,由于DEV构建运行得更频繁,它们的%build_counter%更大,而STAGE没有机会获得自己的软件包部署 - Octopus tentacle优先使用1.0.0.dev软件包 - *后缀。
这一定是相当常见的情况,但我还没有找到解决问题的简单方法。
答案 0 :(得分:9)
这里有一些未记录的部分:https://github.com/OctopusDeploy/Octopus-Tools。但如果你看https://github.com/OctopusDeploy/Octopus-Tools/blob/master/source/OctopusTools/Commands/CreateReleaseCommand.cs,就有可能弄清楚你能做些什么。
我认为这些工具是向后兼容的,但不是100%肯定的。
当您使用我希望您使用的octo工具时,您可以设置version
(现在也称为releasenumber
)选项以指定版本号。如果你没有指定任何其他内容,它将采用最新的包,所以你想要做的是设置应该用于发布的packageversion
(现在也称为defaultpackageversion
)。
我认为应该这样做。如果没有,您使用什么来创建发布?
使用我们已添加到构建代理程序的环境路径的octo工具时,我们从TeamCity使用的示例:
create-release --server=%conf.OctoServerApi% --project=%conf.OctoProject% --version=%env.OctopusPackageVersion% --deployto=%conf.OctoDeployEnv% --packageversion=%env.OctoPackPackageVersion% --apiKey=%conf.OctoApiKey% --waitfordeployment %conf.OctoExtraParams%
<强>更新强>
2.0的文档要好得多:http://docs.octopusdeploy.com/pages/viewpage.action?pageId=360596
答案 1 :(得分:4)
受Tomas Jansson的回答启发,只需将以下内容添加到 OctopusDeploy:创建版本构建步骤(TeamCity v9)中的其他命令行参数我:
--packageversion=%build.number%