提问人:Kira Resari 提问时间:3/10/2018 更新时间:4/7/2020 访问量:3124
将 Team City 版本推送到 Octopus Deploy
Push Team City Release to Octopus Deploy
问:
我在尝试将 .zip 工件从团队城市推送到 Octopus Deploy 时遇到问题,并希望为此寻求一些帮助。
使用Team City上的“OctopusDeploy:推送包”运行器,我正在尝试将工件“Release.%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.
在 Team City 中 Build Configuration 的 “General Settings” 部分的 “Artifacts path” 字段中,我定义了要创建的以下工件:
+:Release => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip
-:Release/**/*.xml => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip
这将在路径 [Team City Data Directory]\system\artifacts[Project Name][Configuration Name][Unique Build Number] 中创建文件“Release.%MajorVersion%.%MinorVersion%.%build.number%.zip”。
接下来,我尝试使用“OctopusDeploy:推送包”运行器将此包推送到我们的八达通服务器,并将“包路径”参数设置为“Release.%MajorVersion%.%MinorVersion%.%build.number%.zip”,因为描述性文本显示“这些遵循与TeamCity工件路径相同的规则”。
但是,这似乎不起作用。
我想知道为什么,以及我如何让它工作。
在这一点上,我的主要问题是我不知道如何解决可变工件目录中的“Release.%MajorVersion%.%MinorVersion%.%build.number%.zip”文件。
答:
简答
您需要更具体地说明步骤中的包路径。通过简单地传递,您告诉该步骤以获取在您的 .但正如你已经说过的,那个包裹实际上是坐着的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
不仅允许您打包,还允许您打包它们(不是那么明显,是的)。因此,如果您在该字段的表达式下方放置 (same),它将创建包并将其推送到存储库OctopusDeploy: Push packages
push
pack
+:Release => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip
-:Release/**/*.xml => Release.%MajorVersion%.%MinorVersion%.%build.number%.zip
此外,如果选中该框,该文件也将作为 TeamCity 项目提供。因此,从技术上讲,您不需要创建工件的当前步骤(当然,除非它在您的构建过程中有其他用途)Publish packages as build artifacts
zip
请确保从 NuGet 包管理器添加到项目。OctoPack
评论