【问题标题】:Use a different package feed based on environment in Octopus Deploy在 Octopus Deploy 中根据环境使用不同的包源
【发布时间】:2013-08-08 02:21:07
【问题描述】:

我知道目前有类似这样的 feature request,但我希望使用当前版本 (1.6) 有某种解决方法

我们从 TFS 中的开发分支为我们的开发和测试环境构建,并从 TFS 中的发布分支为我们的 QA 和生产环境构建。由于这些会产生不同的 nuget 包,因此我不能使用相同的包提要。部署包步骤似乎没有环境范围选项。是否有其他方式可以说“为开发/测试部署包 X 版本 Y,为 QA/生产部署包 A 版本 B?”

【问题讨论】:

    标签: octopus-deploy


    【解决方案1】:

    可以使用相同的提要,但需要注意以下几点:

    从两个分支构建的 nuget 显然必须具有不同的(非冲突)版本。我将“dev”后缀添加到从“dev”分支(例如 1.2.3.4-dev)构建的包中,并保留我的“稳定”分支。

    “创建版本”时必须明确说明,因为默认情况下 Octopus 会选择可用的最高版本的 nuget,而这可能不是您想要的版本(稳定可能滞后于开发)。选择您想要的软件包版本(并适当地设置部署版本)。如果您通过 TeamCity 创建发布,请确保使用 --packageVersion 参数并设置发布号。

    由于上述方法仅适用于版本中只有一个包的情况,因此您的部署过程确实(不幸的是)必须生成一个整体 nuget,否则您将得到版本不匹配。

    当然,这种安排的优势在于,如果需要,您可以在紧要关头将开发版本推送给 QA(或 Prod)。

    所有这一切都假设两个分支构建为同一个包。您可以在 dev 和 stable 分支之间构建不同的包(但我认为我不建议这样做,因为复制了所有 Octopus 配置)。

    更新:显然您可以使用 Octo.exe 为不同的包指定不同的版本号 - 请参阅 https://github.com/OctopusDeploy/Octopus-Tools

    【讨论】:

    • 这基本上是我想要走的路。如果我理解正确的话,dev 是预发布的tag。我曾多次尝试使用 AssemblyInformationalVersion 属性设置预发布版本,但均未成功。到目前为止,OctoPack 似乎忽略了它。您是通过该属性添加标签,还是只是在创建包后将其添加到文件名中?
    • 此时看起来像是由 OctoPack 提供的 AssemblyInformationalVersion isn't supported。 :(
    • 我添加了对 AssemblyInformationalVersion 的支持。这是拉取请求:github.com/OctopusDeploy/OctoPack/pull/34
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2018-11-24
    相关资源
    最近更新 更多