访问隐藏的 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 步骤获取文件并执行我们想要执行的操作。
因此,这里的关键元素是 隐藏 人工制品,也称为出现在 .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 步骤获取文件并执行我们想要执行的操作。