Jenkinsfile管道,返回警告但不要失败

时间:2018-06-13 10:39:31

标签: jenkins jenkins-pipeline

有没有办法不通过声明性管道步骤失败但显示警告?目前我通过将|| exit 0添加到sh命令行的末尾来绕过它,所以它总是退出。

目前的例子:

sh 'vendor/bin/phpcs --report=checkstyle --report-file=build/checkstyle.xml --standard=phpcs.xml . || exit 0'

我觉得应该有更好的方法吗?如何控制返回的结果,以便用户知道如何挖掘结果日志,但也没有阻止/失败?

谢谢

编辑:

所以我已经做到这一点,能够将其标记为不稳定。在蓝色海洋中,它只是标志着每个阶段都不稳定,你必须深入挖掘才能找到它。我试图做不可能的事情(但感觉我应该能够做到这一点)?

此外,它现在只是在Blue Sky的标题中将其显示为“Shell脚本”,而不是显示正在运行的命令,因此您甚至不知道它正在做什么而不扩展它们。

script {
  def RESULT = sh returnStatus: true, script: 'vendor/bin/phpcs --report=checkstyle --report-file=build/checkstyle.xml --standard=phpcs.xml .'
  if ( RESULT != 0 ) {
    currentBuild.result = 'UNSTABLE'
  }
}

重新标记黄色/不稳定:刚刚发现这解释了我不会生气。几年的讨论并没有进展:( https://issues.jenkins-ci.org/browse/JENKINS-39203

现在在Blue Ocean视图中显示“Shell脚本”:我将继续播放更多内容,看看我是否更好地使用|| exit 0或脚本块并使用echo显示一些有用的信息

2 个答案:

答案 0 :(得分:1)

您可以在http://jenkins-url/pipeline-syntax/下找到jenkins本身任何步骤的选项。 sh with returnStatus:true可用于实现目标。

sh returnStatus: true, script: 'ls -2' # returnStatus: true, just set $? but not fail the execution

下面粘贴了管道语法页面的屏幕截图: Screenshot from pipeline-syntax page

答案 1 :(得分:0)

仅供参考:JENKINS-39203在此期间已解决。

我们没有设置currentBuild.result = 'UNSTABLE',而是使用了相应的基本管道步骤unstable,该步骤还显示一条消息:

unstable("There are Checkstyle issues")