pipeline post指令


一.介绍

post步骤包含的是在整个pipeline或阶段完成后一些附加的步骤。post步骤是可选的,所以并不包含在声明式pipeline最简结构中,但这并不代表它作用不大。

通常用于异常处理,若上个阶段执行失败,则做某些操作。例如上个阶段清理依赖包,判断清理失败后,就发送邮件进行报警并退出。

二.参数说明

参数位置:
pipelinesteps部分,根据完成状态,做出判断。

具体参数:

  • always:不论当前完成状态是什么,都执行
  • changed:只要当前完成状态与上一次完成状态不同就执行
  • fixed:上一次完成状态为失败或不稳定(unstable),当前完成状态为成功时执行
  • regression:上一次完成状态为成功,当前完成状态为失败、不稳定或中止(aborted)时执行
  • aborted:当前执行结果是中止状态时(一般为人为中止)执行
  • failure:当前完成状态为失败时执行
  • success:当前完成状态为成功时执行
  • unstable:当前完成状态为不稳定时执行
  • cleanup:清理条件块。不论当前完成状态是什么,在其他所有条件块执行完成后都执行。post部分可以同时包含多种条件块。以下是post部分的完整示例

注意:

  1. post步骤在阶段中,为steps后面抒写
  2. post步骤的每个判断,都会匹配,而非第一个匹配了,其它就跳过了

三.使用实例

编写简单实例:

pipeline {
    agent any
    
    stages {
        stage('test') {
            steps {
                echo 'test'
            }
            
            post {
                always {
                    echo "post condition executed: always ..."
                }
                changed {
                    echo "post condition executed: changed ..."
                }
                aborted {
                    echo "post condition executed: aborted ..."
                }
            }
        }
    }
    }

文章编写时,添加了regression选项的判断,但执行报了以下错误,说明当前pipeline插件不支持这个选项,所以在上面例子中去掉了。

再次执行,可以看到显示2个输出,always每次都会显示,因为上次失败,本次steps的echo执行成功,就显示了changed。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM