gpt4 book ai didi

c# - 在 Jenkins 中获取 ErrorLevel

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:36 25 4
gpt4 key购买 nike

我在 C# 中创建/修改了一个资源转换器工具,用于检查项目中所有资源文件的格式。

程序返回一个整数。0 表示未发现格式问题。大于 0 的数字是发现的所有格式问题的计数。小于 0 是错误,例如找不到文件夹等。

我需要将这个过程集成到我们的 Jenkins 构建管道中(如果返回不为 0,我需要停止构建)

我修改了 Jenkins 脚本,它工作得很好,唯一的问题是我无法 catch ErrorLevel。如果返回为 0,我想抛出一个 Eco blah-blah,如果返回为 != 0,我想抛出其他东西。

任何帮助如何做到这一点。

这是我到目前为止所做的,正如我所说,如果返回值不为 0,构建将停止,但我需要以某种方式捕获该值以了解例如我遇到的格式问题的总数等。 .

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
}

最佳答案

您可以使用 returnStatus flag

Normally, a script which exits with a nonzero status code will cause the step to fail with an exception. If this option is checked, the return value of the step will instead be the status code. You may then compare it to zero, for example.

下面是你如何使用它

def returnCode = bat (
script: "${WORKSPACE}\\Translator\\bin\\Release\\ResxTranslator.exe /checkForamt ${WORKSPACE}\\DataBlock\\SmartFramework",
returnStatus: true
)

它不会使构建失败或抛出异常,因此您可以正确处理它并做任何您需要的事情。

关于c# - 在 Jenkins 中获取 ErrorLevel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55576072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com