将Team City Release推向Octopus Deploy

时间:2018-03-10 05:52:48

标签: teamcity octopus-deploy

我在尝试将.zip工件从Team City推送到Octopus Deploy时遇到问题,并且想要请求一些帮助。

使用" OctopusDeploy:Push packages"在Team City上跑步,我正在努力推动工件"发布。%MajorVersion%。%MinorVersion%。%build.number%.zip"到我们的八达通服务器。

然而,这失败并显示以下错误消息:

[04:58:19][Octopus Deploy] Please specify a package to push
[04:58:19][Octopus Deploy] Exit code: -1
[04:58:19][Octopus Deploy] Octo.exe exit code: -1
[04:58:19][Step 3/3] Unable to create or deploy release. Please check the build log for details on the error.

在" Artifacts路径" "一般设置"的字段在Team City中构建配置的一部分,我已经定义了要创建的以下工件:

+:Release => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip
-:Release/**/*.xml => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip

这将创建文件" Release。%MajorVersion%。%MinorVersion%。%build.number%.zip"在路径[团队城市数据目录] \ system \ artifacts [项目名称] [配置名称] [唯一版本号]。

接下来,我尝试使用" OctopusDeploy:Push packages"将此软件包推送到我们的Octopus服务器。跑步者使用"包裹路径"参数设置为"发布。%MajorVersion%。%MinorVersion%。%build.number%.zip",因为描述性文字说"它们遵循与TeamCity工件路径相同的规则。&#34 ;

但是,这似乎不起作用。

我想知道为什么,以及如何让它发挥作用。

我现在的主要问题是我不知道如何解决"发布。%MajorVersion%。%MinorVersion%。%build.number%.zip"文件在mutable artifacts目录中。

2 个答案:

答案 0 :(得分:2)

简短回答

您需要在OctopusDeploy: Push packages步骤中更具体地了解包路径。只需传递Release.%MajorVersion%.%MinorVersion%.%build.number%.zip,您就知道在workdir的根目录下获取具有该名称的包的步骤。但正如您已经说过的那样,该包实际上位于[Team City Data Directory]\system\artifacts[Project Name][Configuration Name][Unique Build Number]

因此尝试传递zip文件的完整路径,如

[Team City Data Directory]\system\artifacts[Project Name][Configuration Name][Unique Build Number]\Release.%MajorVersion%.%MinorVersion%.%build.number%.zip

将方括号中的值替换为适当的TeamCity变量

长答案

当它说时,它们遵循与TeamCity工件路径相同的规则,这意味着您可以使用相同类型的表达式(如+:Release => Release.zip)来创建工件。这并不意味着它会将文件查找到工件的目录中。

OctopusDeploy: Push packages不仅允许您push个套餐,还允许pack个套餐(不是那么明显,是的)。因此,如果您在该字段中放置(相同)下面的表达式,它将创建包并将其推送到存储库

+:Release => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip -:Release/**/*.xml => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip

此外,如果您选中Publish packages as build artifacts框,zip文件也将作为TeamCity工件提供。所以你在技术上不需要你创建工件的当前步骤(除非你的构建过程中有另一个目的)

enter image description here

答案 1 :(得分:0)

确保从NuGet软件包管理器中将OctoPack添加到项目中。