gpt4 book ai didi

deployment - 如何让八达通部署在多个环境中选择包版本?

转载 作者:行者123 更新时间:2023-12-04 10:25:26 25 4
gpt4 key购买 nike

我们正在使用 TeamCity 服务器和 OctoPack 为多个部署环境构建包。问题是触手代理选择包的最新版本号,因此它是部署在所有环境中的相同(最新)包。以下是我们的设置摘要:

  • 环境 DEV 和 STAGE;
  • 部署到 DEV 是从 Git“dev”分支触发的;
  • 部署到 STAGE 是从 Git“stage”分支触发的;
  • OctoPack 配置为生成包 MyProduct.1.0.0.dev-%build_counter% 用于 DEV 构建配置;
  • OctoPack 配置为生成包 MyProduct.1.0.0.%build_counter% 用于 STAGE 构建配置;
  • TeamCity 配置为通过其 NuGet 源公开 OctoPack 人工制品(NuGet 包);
  • Octopus 项目配置为使用来自 TeamCity NuGet 源的 NuGet Id MyProduct 部署包。

  • 那么发生的情况是,由于 DEV 构建运行更频繁,因此它们具有更大的 %build_counter%,并且 STAGE 没有机会部署自己的包 - Octopus 触手更喜欢带有 1.0.0.dev-* 后缀的包.

    这一定是相当普遍的情况,但我还没有找到解决它的简单方法。

    最佳答案

    这里有一些没有记录的部分: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

    关于deployment - 如何让八达通部署在多个环境中选择包版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21259920/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com