如何配置Jenkins管道,以便如果有多个shell脚本并且其中一个失败,jenkins作业仍然运行而不是退出

8ftvxx2r  于 2023-08-03  发布在  Jenkins
关注(0)|答案(3)|浏览(148)

我想配置一个Jenkins管道作业,以便它能够运行多个shell脚本作业。即使一个shell脚本失败,作业也应该在失败之前运行其他两个脚本。

igetnqfo

igetnqfo1#

你需要调整你的shell脚本,而不是Jenkins管道来实现你想要的!
在您的shell脚本中尝试这样做
shell脚本命令> /dev/null 2>&1||真的
所以失败/通过它将执行并转到下一个shell脚本

11dmarpk

11dmarpk2#

您总是可以尝试捕获可能失败的sh执行

node {
    sh "echo test"
    try {
        sh "/dev/null 2>&1"
    } catch (error) {
        echo "$error"
    }
    sh "echo test1"
}

字符串
以上运行成功并产生

Started by user Blazej Checinski
[Pipeline] node
Running on agent2 in /home/build/workspace/test
[Pipeline] {
[Pipeline] sh
[test] Running shell script
+ echo test
test
[Pipeline] sh
[test] Running shell script
+ /dev/null
/home/build/workspace/test@tmp/durable-b4fc2854/script.sh: line 2: /dev/null: Permission denied
[Pipeline] echo
hudson.AbortException: script returned exit code 1
[Pipeline] sh
[test] Running shell script
+ echo test1
test1
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

mkshixfv

mkshixfv3#

从sh步骤https://www.jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell-script使用returnStatus
通过这种方式,您的脚本将始终通过,状态结果将存储在变量中,您可以稍后对该变量进行检查,并抛出一个异常,指出x阶段中的失败
或者将sh步骤 Package 在Warnn中,这样阶段将变为黄色,不会引发任何故障(彩色阶段将在管道页面上可见)

相关问题