【问题标题】:Specifying Nuget Package version in Octopus Deploy在 Octopus Deploy 中指定 Nuget 包版本
【发布时间】:2016-01-14 18:42:42
【问题描述】:

基本上,我试图在章鱼进程的一个步骤中指定 Nuget 包版本。

我们有一个相当简单的过程,我们使用 Teamcity 创建一个 Nuget 包并将其上传到 octopus,然后我们要求 octopus 为给定项目创建一个版本,这会触发安装 2 个其他 nuget 包的 Octopus 进程然后是我们刚刚上传的新包。

我们遇到的问题是另外两个包。我将它们称为PackageA 和PackageB。我想安装 PackageA 的 1.0.0.0 版本和 PackageB 的 2.0.0.0 版本,然后始终安装我刚刚上传的 NewReleasePackage 的最新版本。部署 Nuget 包的基本步骤有一个“NuGet 包 ID”字段,它可以帮助我识别 PackageA 和 PackageB。但是,这不允许我指定版本。如果我有两个客户端,一个使用 PackageA 的 1.0.0.0 版本,另一个使用 2.0.0.0 版本,那么我的章鱼包存储库中将有两个版本的 PackageA,我需要能够在步骤级别指定版本我想为给定进程/客户端安装的软件包。但是我似乎无法找到一种方法来做到这一点。你能帮忙吗?

谢谢

【问题讨论】:

    标签: nuget octopus-deploy teamcity-9.0


    【解决方案1】:

    我假设您正在使用 octo.exe 通过 teamcity 触发您的部署。尚不清楚您的部署过程是如何设置的。因此,您正在部署三个包 - 您只希望更新其中一个。

    您可以使用参数在 octo.exe 调用中指定每个包的特定版本:

    package=StepName:Version
    

    您可以在 octo.exe 调用中以昂贵的硬编码值完成您要查找的内容。如果包 A 和 B 很少改变,那不是问题。但如果不经常进行更改,则必须更改 octo.exe 调用的参数。

    这一切都在他们网站here 上的文档中。如果您有更多详细信息,请提供,因为我的回答是高度推测性的。

    理论上来说,我认为有一个替代选择:在与原始项目相同的项目组中的自己的项目中拆分经常更改的 NuGet 包。这样,当您进行构建并且只部署一个要部署的 NuGet 包时,这是唯一需要进行的更改。

    通过将您的项目分成两部分,您将避免完全更改 octo.exe 的脚本参数 - 让我们面对现实吧,这是一个丑陋的 hack。从长远来看,这不会使您的部署自动化并最终给自己带来麻烦。如果包 A 和 B 没有更改 - 为什么要使用一个经常更改的包重新部署它们?这就是为什么我建议(没有所有必要信息)将您的项目分成两个项目。

    我可以想出更多创造性的解决方案,但部署自动化的最佳实践/原则是越简单、越自主越好。当您深入了解有关部署的包版本的详细信息并且只为一个包部署最新版本而坚持使用其他包的其他较旧的静态版本时,是时候从整体上重新考虑您的部署过程了接地气。

    【讨论】:

    • 您好 osij2is,感谢您的回复。这不是我所追求的。您在我们的流程中看到,我们有 3 个步骤。前两个步骤安装具有特定版本的包 A 和 B。然后在第 3 步中,我们安装最近上传的软件包的最新版本。在每个步骤中,我们必须通过它的 ID 来识别我们想要安装的包。在我看来,版本也应该在这里指定(除非是空的,在这种情况下是最新的)。我会在一个系统中指定 ID 并在另一个系统中指定版本,这似乎很奇怪。那有意义吗?谢谢威尔
    • 对不起,这里说的步骤和流程我说的是章鱼中的步骤和流程
    • 实际完成部署了吗?创建版本时,首先选择要部署到的环境,然后指定要部署的每个包的版本。
    • 通过 Teamcity 创建发布。它不是手动过程。我们希望它尽可能自动化。我可以通过 create release 命令指定 teamcity 中每个包的版本。然而,这感觉……错了。感觉不对,因为我在 octopus 中指定了 nuget 包 ID(对于 3 个包中的每一个),但在 teamcity 中指定了这 3 个包的版本。感觉很奇怪。如果需要在 TC 中指定 ID 和版本,那在我的脑海中会更有意义。然而,在 Octopus 中指定它对我来说最有意义。你明白我的意思吗?
    猜你喜欢
    • 2015-04-29
    • 2014-01-23
    • 2018-08-18
    • 1970-01-01
    • 2016-09-04
    • 2015-04-29
    • 2020-05-12
    • 1970-01-01
    • 2017-05-08
    相关资源
    最近更新 更多