我在尝试将.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目录中。
答案 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工件提供。所以你在技术上不需要你创建工件的当前步骤(除非你的构建过程中有另一个目的)
答案 1 :(得分:0)
确保从NuGet软件包管理器中将OctoPack
添加到项目中。