我有shell脚本来构建dotnet解决方案,我在Jenkins中运行它,但它报告构建成功,即使dotnet构建返回错误。
我的生成代码:
if [ -f $SOLUTION ]; then
echo "Building ${branch} :" | tee msbuild.log
STATUS=$(dotnet build $SOLUTION -v m -o $BUILD_TARGET/${branch}) | tee msbuild.log
if ! [ $STATUS -eq 0 ]; then
echo "MSBuild failed"
exit 1;
fi
else echo“找不到解决方案:${解决方案}!”|tee msbuild.log fi我正在检查最后一个状态码以检测错误,然后通过返回1使Jenkins作业失败,但由于某些原因,它甚至没有执行if块。在Jenkins控制台中,我可以看到来自dotnet build的错误消息:x1c 0d1x什么原因会导致此行为?是否由于此设置:#!/bin/bash +x
编辑:修正了上述代码的当前版本的错误。现在每个构建都因为语法错误而失败:[: -eq: unary operator expected
1条答案
按热度按时间yyyllmsg1#
$STATUS
变量没有设置。我认为tee
管道没有返回值。你可以试试