因爲管道的post
部分保證在管道執行結束時運行,咱們能夠添加一些通知或其餘步驟來執行最終、通知或其餘管道結束任務。node
Jenkinsfile (Declarative Pipeline) pipeline { agent any stages { stage('No-op') { steps { sh 'ls' } } } post { always { echo 'One way or another, I have finished' deleteDir() /* clean up our workspace */ } success { echo 'I succeeeded!' } unstable { echo 'I am unstable :/' } failure { echo 'I failed :(' } changed { echo 'Things were different before...' } } }
腳本管道(高級):segmentfault
Jenkinsfile (Scripted Pipeline) node { try { stage('No-op') { sh 'ls' } } catch (exc) { echo 'I failed' } finally { if (currentBuild.result == 'UNSTABLE') { echo 'I am unstable :/' } else { echo 'One way or another, I have finished' } } }
有不少方法能夠發送通知,下面是一些演示如何將有關管道的通知發送到電子郵件、Hipchat聊天室或Slack通道的片斷。post
post { failure { mail to: 'team@example.com', subject: "Failed Pipeline: ${currentBuild.fullDisplayName}", body: "Something is wrong with ${env.BUILD_URL}" } }
post { failure { hipchatSend message: "Attention @here ${env.JOB_NAME} #${env.BUILD_NUMBER} has failed.", color: 'RED' } }
post { success { slackSend channel: '#ops-room', color: 'good', message: "The pipeline ${currentBuild.fullDisplayName} completed successfully." } }
如今,當事情失敗、不穩定甚至成功時,團隊會收到通知。測試