post 步骤在Jenkins pipeline语法中是可选的,包含的是整个pipeline或阶段完成后一些附加的步骤。 比如我们希望整个pipeline执行完成之后或pipeline的某个stage执行成功后发生一封邮件,就可以使用post,可以理解为”钩子“。
根据pipeline或阶段的完成状态,post部分分成多种条件块,包括: • always:不论当前完成状态是什么,都执行。 • changed:只要当前完成状态与上一次完成状态不同就执行。 • fixed:上一次完成状态为失败或不稳定(unstable),当前完成状态为成功时执行。 • regression:上一次完成状态为成功,当前完成状态为失败、不稳定或中止(aborted)时执行。 • aborted:当前执行结果是中止状态时(一般为人为中止)执行。 • failure:当前完成状态为失败时执行。 • success:当前完成状态为成功时执行。 • unstable:当前完成状态为不稳定时执行。 • cleanup:清理条件块。不论当前完成状态是什么,在其他所有条件块执行完成后都执行。post部分可以同时包含多种条件块。
以下是 post 部分的完整示例
pipeline {
agent any
stages {
stage('build') {
steps {
echo "build stage"
}
post {
always {
echo 'stage post always'
}
}
}
}
post {
changed {
echo 'pipeline post changed'
}
always {
echo 'pipeline post always'
}
success {
echo 'pipeline post success'
}
// 省略其他条件块
}
}
https://jenkins.io/zh/doc/book/pipeline/syntax/#post