首页 > 解决方案 > Jenkinsfile 管道,返回警告但不失败

问题描述

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

当前示例:

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

我觉得应该有更好的方法来做到这一点?您如何控制返回的结果,以便用户在不挖掘结果日志但又不会阻塞/失败的情况下知道?

谢谢

编辑:

所以我已经做到了能够将其标记为不稳定的。在 Blue Ocean 中,它只是将每个阶段标记为不稳定,您必须深入挖掘才能找到它。我是否正在尝试做不可能的事情(但感觉我应该能够做到)?

此外,它现在只是在 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 显示一些有用的信息。

标签: jenkinsjenkins-pipeline

解决方案


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

我们不使用设置currentBuild.result = 'UNSTABLE',而是使用相应的基本管道步骤unstable,它也需要一条消息:

unstable("There are Checkstyle issues")

推荐阅读