我正在寻找一个Jenkinsfile的例子,有一个步骤,总是执行,即使前一个步骤失败。我想确保在失败的情况下存档一些构建结果,并且我需要能够在最后有一个始终运行的步骤。我如何才能做到这一点?
Jenkinsfile
jum4pzuy1#
我们转而使用Jenkinsfile声明性管道,它可以让我们做以下事情:
pipeline { agent any stages { stage('Test') { steps { sh './gradlew check' } } } post { always { junit 'build/reports/**/*.xml' } } }
参考文献:Jenkins Pipeline Syntax
qzlgjiam2#
try { sh "false" } finally { stage 'finalize' echo "I will always run!" }
chhqkbe13#
另一种可能性是将parallel区段与lock结合使用。例如:
parallel
lock
pipeline { stages { parallel { stage('Stage 1') { steps { lock('MY_LOCK') { echo 'do stuff 1' } } } stage('Stage 2') { steps { lock('MY_LOCK') { echo 'do stuff 2' } } } } } }
如果为并行部分设置了快速失败选项,则并行部分中的并行阶段仅中止同一并行部分中的其他阶段。请参阅文档。
3条答案
按热度按时间jum4pzuy1#
我们转而使用Jenkinsfile声明性管道,它可以让我们做以下事情:
参考文献:
Jenkins Pipeline Syntax
qzlgjiam2#
chhqkbe13#
另一种可能性是将
parallel
区段与lock
结合使用。例如:如果为并行部分设置了快速失败选项,则并行部分中的并行阶段仅中止同一并行部分中的其他阶段。请参阅文档。