将 Team City 版本推送至 Octopus Deploy

Kir*_*ari 5 teamcity octopus-deploy

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

使用 Team City 上的“OctopusDeploy:推送包”运行器,我尝试将工件“Release.%MajorVersion%.%MinorVersion%.%build.number%.zip”推送到我们的 Octopus 服务器。

但是,此操作失败并显示以下错误消息:

[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.
Run Code Online (Sandbox Code Playgroud)

在 Team City 构建配置的“常规设置”部分的“工件路径”字段中,我定义了要创建的以下工件:

+:Release => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip
-:Release/**/*.xml => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip
Run Code Online (Sandbox Code Playgroud)

这将在路径 [Team City Data Directory]\system\artifacts[项目名称][配置名称][唯一内部版本号]中创建文件“Release.%MajorVersion%.%MinorVersion%.%build.number%.zip”。

接下来,我尝试使用“OctopusDeploy:推送包”运行程序将此包推送到我们的 Octopus 服务器,并将“包路径”参数设置为“Release.%MajorVersion%.%MinorVersion%.%build.number%.zip” ,因为描述性文本显示“这些遵循与 TeamCity 工件路径相同的规则”。

然而,这似乎不起作用。

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

此时我的主要问题是我不知道如何解决可变工件目录中的“Release.%MajorVersion%.%MinorVersion%.%build.number%.zip”文件。

Dal*_*nas 4

简短回答

您需要更具体地说明该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 artifactszip文件也将作为 TeamCity 工件提供。因此,从技术上讲,您不需要创建工件的当前步骤(当然,除非它在构建过程中有其他目的)

在此输入图像描述