尽管步骤失败,Jenkinsfile 阶段没有失败

时间:2021-01-11 16:50:28

标签: jenkins jenkins-pipeline jenkins-declarative-pipeline

stage('python') {
  sh script: '''
    #!/bin/bash
    set -ex

    python2.7 -u run_test.py                     <--- this script had a import error but stage passed


  '''.stripIndent()
}

在日志中,

[2021-01-09T05:35:25.812Z] + python2.7 -u run_test.py
[2021-01-09T05:35:27.183Z] Traceback (most recent call last):
[2021-01-09T05:35:27.183Z]     from util.common import log
[2021-01-09T05:35:27.183Z] ImportError: No module named util.common

对于上述 python 失败的情况,我如何确保该阶段失败?

1 个答案:

答案 0 :(得分:0)

如果 sh 脚本返回非零退出状态,sh script: '''...''' 命令将抛出/失败您的管道。 您使用了 set -ex 以便它因第一个错误而失败。 你能修改你的脚本以显示 python 命令的退出状态吗?