我用C#创建/修改了资源转换器工具,该工具检查项目中所有资源文件中的格式。
程序返回一个整数。 0表示未找到格式问题。 > 0是找到的所有格式问题的计数。 小于0是类似找不到文件夹之类的错误。
我需要将此过程集成到我们的Jenkins构建管道中(如果返回值不为0,则需要停止构建)
我修改了Jenkins脚本,并且运行良好,唯一的问题是我无法赶上ErrorLevel。 如果返回值为0,我想扔一个Eco blah-blah,如果返回值为== 0,我想扔其他东西。
任何帮助如何做到这一点。
这是我到目前为止所做的,因为我说它正在工作,并且如果返回值不为0,则构建停止,但是我需要以某种方式捕获该值以了解例如我遇到的Format问题的总数等。
try{
stage('Check Translation'){
buildResult.checkTranslationSuccssfull = false
// Clean project
bat "${MSBuildPath} ${WORKSPACE}\"\\Translator\\ResxTranslator.sln\" /t:Clean,Build /p:Configuration=\"Release\" /p:Platform=\"x86\" /p:BuildProjectReferences=false >>${OutPutBuildLog}"
// Build reference SmartFramework
bat "@Echo Off"
bat "@Echo [Check all Resx format]"
bat "@echo"
bat "${WORKSPACE}\\Translator\\bin\\Release\\ResxTranslator.exe /checkForamt ${WORKSPACE}\\DataBlock\\SmartFramework"
buildResult.checkTranslationSuccssfull = true
}
}
catch(Exception ex){
echo "test ${env.errorlevel}"
echo "Check Translation failed. Check BuildServer solution."
echo ex.toString()
currentBuild.result = 'UNSTABLE' // mark as unstable to continue with pipeline
}
答案 0 :(得分:0)
您可以使用returnStatus flag
通常,以非零状态代码退出的脚本将导致该步骤失败并出现异常。如果选中此选项,则该步骤的返回值将是状态码。例如,您可以将其与零进行比较。
这是您可以使用它的方式
def returnCode = bat (
script: "${WORKSPACE}\\Translator\\bin\\Release\\ResxTranslator.exe /checkForamt ${WORKSPACE}\\DataBlock\\SmartFramework",
returnStatus: true
)
它不会使构建失败或引发异常,因此您可以正确处理它并执行所需的任何操作。