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
3条答案
按热度按时间igetnqfo1#
你需要调整你的shell脚本,而不是Jenkins管道来实现你想要的!
在您的shell脚本中尝试这样做
shell脚本命令> /dev/null 2>&1||真的
所以失败/通过它将执行并转到下一个shell脚本
11dmarpk2#
您总是可以尝试捕获可能失败的sh执行
字符串
以上运行成功并产生
型
mkshixfv3#
从sh步骤https://www.jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell-script使用returnStatus
通过这种方式,您的脚本将始终通过,状态结果将存储在变量中,您可以稍后对该变量进行检查,并抛出一个异常,指出x阶段中的失败
或者将sh步骤 Package 在Warnn中,这样阶段将变为黄色,不会引发任何故障(彩色阶段将在管道页面上可见)