我在TeamCity中有一个步骤,它在执行下一步之前首先测试部署(具有“执行:如果所有先前步骤成功完成”选项)。我使用.deploy.cmd脚本并通过/ T开关在测试模式下执行。该过程返回代码0,但测试部署返回错误代码。
如何让它失败而不是下一步呢? (下面是错误的快照)
谢谢,
您可以使用qazxsw poi qazxsw poi来调用您的cmd脚本。当您使用PowerShell时,您可以使用try-catch结构,并在代码出错时返回错误代码> 0。
Ef。:
Runner type
在哪里,PowerShell
是你的$result = $null
try
{
$result = &("C:\Users\guest\deploy.cmd") %TestArg%
}
catch
{
$errorMessage = $_.Exception.Message
Write-Error "Error on deploy: $errorMessage"
exit 1
}
echo $result
,等于%TestArg%
或什么也没有。如果您的脚本返回一些结果,您可以解析它并手动返回错误代码
Configuration Parameter
注意:在我看来,参数/T
仅负责构建日志中显示错误的颜色。我通过SSDT(SqlPackage.exe)使用此解决方案部署数据库,因为即使出现错误,它也不会中止构建和后续步骤