我们使用的是 TeamCity Enterprise 8.0.5。
我有一个运行 PowerShell (.ps1) 脚本的 TeamCity 构建步骤,如下所示:
try
{
# Break something
$a = 1 / 0
}
catch
{
Exit 1
}
尽管如此,在构建日志中,该步骤成功并以代码 0 退出。
[10:02:18][步骤 2/3] 进程退出,代码为 0
如果脚本中有任何失败,我希望该步骤失败。我怎样才能做到这一点?
我刚刚发现这个帖子:
PowerShell 运行程序 - 脚本失败但构建成功 - “进程已退出,代码为 0” https://youtrack.jetbrains.com/issue/TW-21554
TeamCity 中存在一个错误,这意味着不会拾取非零 PowerShell 返回代码。
建议的解决方案是在检测到构建日志中的某些文本输出时创建构建失败条件。
然而,我的解决方案涉及一些不同的东西。
在 catch 块中,您只需使用写错误 https://learn.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Write-Error cmdlet:
catch
{
Write-Error -Exception $_.Exception
}
然后您必须确保在 TeamCity 中正确设置两件事:
首先,构建步骤错误输出应设置为error, 并不是warning:
其次,在构建失败条件屏幕中,确保构建运行程序记录错误消息被检查:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)