##vso[task.complete result=Failed;] 未使脚本步骤失败

Mar*_*rko 8 azure-pipelines azure-pipelines-tasks

我认为对 ##vso[task.complete result=Failed;] 的调用应该使调用它的脚本步骤立即失败,但我现在在我的管道中看到了一种情况,但情况并非如此。

我的假设是错误的还是Azure管道脚本任务中存在错误?

我的构建代理正在 Ubuntu 容器中运行任务,并且代理本身是 Linux 代理。

Bri*_*SFT 5

exit 1您可以尝试在“ ”命令后面添加命令行“ ” ##vso[task.complete result=Failed;]

echo "##vso[task.complete result=Failed;]"
exit 1
Run Code Online (Sandbox Code Playgroud)

同样,您也可以尝试在管道任务中使用日志记录命令“ LogIssue ”来记录任务上的错误。

echo "##vso[task.logissue type=error]Something went very wrong."
exit 1
Run Code Online (Sandbox Code Playgroud)


Mar*_*rko 2

我刚刚做了一个小测试,使用下面的代码实现了因错误而中止该步骤的预期目标,但在 Azure pipelines web ui 中仅显示一条错误消息:

echo "##vso[task.logissue type=error]Something went very wrong."
echo "##vso[task.complete result=Failed;]Make step fail"
exit 0
Run Code Online (Sandbox Code Playgroud)

这工作正常,但看起来真的很难看,因为“exit 0”给人的印象是该步骤没问题,但实际上由于 task.complete 调用,状态将是“失败”。

我仍然想知道 task.complete 命令不中止该步骤的这种行为是否是“设计使然”,或者我只是找到了一个错误的解决方法。