Teamcity的Octopus部署不使用最新的软件包

时间:2013-06-14 11:58:45

标签: teamcity octopus-deploy

我在TeamCity上设置了一个构建步骤,如here所述,为我们的测试服务器进行自动发布部署。但它没有使用TeamCity中构建的最新nuget包。

使用案例

Teamcity将创建版本为1.0.0.9的nuget包,包中的所有dll都是正确的版本,并且部署的Octopus版本具有相同的版本号,但章鱼使用的包是较早的包,例如1.0.0.5。

我在构建步骤中指定了 - force 参数,因此它应该使用最新的包但不是。

如果我在Octopus中手动创建一个版本,并选择最新的软件包,它将100%

如果我遗失了某些东西,请有人告诉我。

提前致谢

6 个答案:

答案 0 :(得分:19)

我认为你需要做的是在TeamCity中创建两个构建配置,一个用于构建,一个用Octopus部署。请参阅最后有一个小模糊的this link

Note that NuGet packages created from your build won't appear in TeamCity until after the build completes. This means you'll usually need to configure a secondary build configuration, and use a snapshot dependency and build trigger in TeamCity to run the deployment build configuration after the first build configuration completes.

所以在我的情况下,我创建了2个构建配置,然后设置从构建到部署配置的快照依赖关系,以及在成功构建后启动部署的触发器。

答案 1 :(得分:2)

看起来--force只是强制将软件包重新安装(如果已安装)。你使用的是--packageversion参数吗?

答案 2 :(得分:1)

我的组织使用Jenkins CI。我们使用唯一的内部版本号作为我们的软件包版本,然后使用--packageversion参数部署该特定的软件包版本。

在我们有多个需要部署的服务的情况下。我们有一个上游作业/主要工作,提供唯一的内部版本号。

我想你可以用TeamCity做同样的事情

主作业(唯一构建号)使用参数(唯一构建)调用作业A和作业B.作业A和B构建版本(来自Master Job)。作业A和B完成然后发布他们各自的版本。

答案 3 :(得分:1)

这可能是一些事情。

退房。

http://octopusdeploy.com/documentation/integration/teamcity

您尚未提及如何使用Teamcity中八达通的Feed。我会从那里开始。

接下来,我将使用teamcity动作进行部署。您询问“应该在哪里添加--waitfordeployment标志”有一个复选框,以确保部署在行动可以继续之前有效。

答案 4 :(得分:0)

在TeamCity中,我使用了Octo Push Packages步骤,在Additional Parameters字段中,我指定了--defaultpackgeversion {VERSION}参数。

这将迫使Octo使用特定版本的软件包,而不是仅选择“最新版本”。

答案 5 :(得分:0)

问题的原因可能更多。

  1. 要查看八达通的问题,请转到Configuration -> Diagnostics enter image description here

  2. 另一个常见问题是在部署步骤中使用程序包名称 #{variable}

    目前无法手动设置包名称,例如MyWebSiteMyWindowsService。有关此功能,请参阅UserVoiceenter image description here