我有一个带有CentOS代理的Azure管道。在构建失败时,管道不会中断。这是管道yaml配置的一部分:
return (
<View style={{flex: 1, flexDirection: 'row', justifyContent: "center"}} key={location.id}>
<Text style={{width: "80%", height: 20}}>{location.name}</Text>
<Button
style={{width: "20%", height: 20}}
title="x"
onPress={() => this.removeLocationFromDevice(location)}
/>
</View>
)
如何使它在构建错误时失败?
构建日志:
- bash: |
dotnet --version
dotnet build $(Build.Repository.LocalPath)/ProjA -c Release -r linux-x64
dotnet build $(Build.Repository.LocalPath)/ProjB -c Release -r linux-x64
failOnStderr: true
displayName: build
env:
DOTNET_CLI_HOME: /tmp
答案 0 :(得分:0)
是的,我已经看到在Linux代理上运行的构建也发生了类似的事情。
Windows具有%ERRORLEVEL%来捕获最后执行的命令或脚本的返回/退出代码,在查询后您将知道是否继续执行其余的命令或脚本。同样,您可以尝试从CentOS计算机(echo $?
)上执行的命令中获取正确的退出代码,并在确实出现问题的情况下将输出通过管道传输到stderr
。
这将意味着由于将failOnStderr
arg设置为true
,该任务将失败,从而导致构建中断。还有一些任务控制选项,例如continueOnError
,我们可以用来定义此行为:
以下是一些有趣的相关读物:
希望这会有所帮助。