访问隐藏的 teamcity 工件

Accessing hidden teamcity artifacts

因此,这里的关键元素是 隐藏 人工制品,也称为出现在 .teamcity/ 部分构建人工制品下的人工制品。

一些背景: 我们目前 运行 dotCover 我们的 NUnit 测试步骤来报告我们的测试覆盖率。这会将结果的汇编放在 .teamcity/.NETCoverage/ 下名为 CoverageResults.xml 的文件中。这是我想要访问的文件,这样我们就可以挖掘一些数据并将其发送到壁虎板。

现在,到目前为止,我们可以使用建议的 methodology 成功地获取不在该部分目录中的工件(例如我们输出时构建的结果等)。仅在访问此隐藏目录时出现此问题。

其他奇怪的事情是响应:302 临时移动。

作为参考,我的 link 看起来像:(顺便说一句,在 powershell 中)

"http://{0}:{1}@{2}/guestAuth/repository/download/{3}/.lastFinished/.teamcity/.NETCoverage/CoverageReport.xml" -f $serverURl, $gUName, $gPassword, $buildType

有人对访问隐藏的神器有什么建议吗?这些数据还可以从哪里获取(我们在系统变量上找不到任何相关信息)?

注意:我们已经知道这些工件在构建步骤完成之前不会生成。我们是在完成构建之后执行此操作,而不是在构建作业本身期间执行此操作。

如果您将其添加到工件路径字段中,它会在构建完成后将报告作为构建工件附加

%system.teamcity.build.tempDir%\**\CoverageReport.xml

希望对您有所帮助

留下我们想出的解决方案,以防它对其他人有帮助:

最后,我们从来没有弄清楚原因的本质,但简而言之,将 in URL 身份验证与 Powershell 的 Invoke-WebRequest 一起使用是行不通的。这似乎是从创建的请求或类似请求中剔除的,但我们朝另一个方向前进,所以我不能对此发表更多评论。

我们所做的是使用 cURL。这不会执行 Powershell 所做的任何事情,因此我们在 Team City Build 中将其简单地分解为两个步骤。使用 cURL 下载文件并将其放置在临时目录中的命令行步骤,然后使用 Powershell 步骤获取文件并执行我们想要执行的操作。