今天发现一个问题,之前jenkinsfile中的邮件通知失效了,于是赶忙打开系统配置测试邮件功能是否有问题:
点击测试,看看能不能收到邮件:
收到邮件,那么说明是代码配置的问题,接下来打开jenkinsfile里定义的查看:
已失效的原配置:
stages {
stage ('send email') {
steps {
emailext body: '''$PROJECT_NAME -Build # $BUILD_NUMBER - $BUILD_STATUS:
Check console output at $BUILD_URL to view the results.''',
recipientProviders: [developers()],
replyTo: 'Please don\'t reply!!!',
subject: '构建通知:$PROJECT_NAME -Build # $BUILD_NUMBER - $BUILD_STATUS!'
}
}
}
然后经过一通修改:
stages {
stage("send mail test") {
steps{
script {
mail to: '邮箱地址,例:xxxx@qq.com',
subject: "Running Pipeline: ${currentBuild.fullDisplayName}",
body: " ${env.PROJECT_NAME} -Build # ${env.BUILD_NUMBER} - ${env.BUILD_STATUS}!\n Check console output at ${env.BUILD_URL} to view the results."
}
}
}
}
这样邮件可以收到了,但是这两个变量读取不到
于是打开 ip:端口/env-vars.html 查看可用变量
找到名称的变量
修改:
stages {
stage("send mail test") {
steps{
script {
mail to: '填写收件的邮箱地址,例:xxxx@qq.com',
subject: "Running Pipeline: ${currentBuild.fullDisplayName}",
body: " ${env.JOB_NAME} -Build # ${env.BUILD_NUMBER} - ${env.BUILD_STATUS}!\n Check console output at ${env.BUILD_URL} to view the results."
}
}
}
}
发现任务的名称有了,但是状态还是读取不到
找不到变量,那么就手动写:
stages {
}
post{
failure {
script {
mail to: '填写收件的邮箱地址,例:xxxx@qq.com',
subject: "Running Pipeline: ${currentBuild.fullDisplayName}",
body: " ${env.JOB_NAME} -Build # ${env.BUILD_NUMBER} - error!\n Check console output at ${env.BUILD_URL} to view the results."
}
}
success {
script {
mail to: '填写收件的邮箱地址,例:xxxx@qq.com',
subject: "Running Pipeline: ${currentBuild.fullDisplayName}",
body: " ${env.JOB_NAME} -Build # ${env.BUILD_NUMBER} - Success!\n Check console output at ${env.BUILD_URL} to view the results."
}
}
}
首先post跟stages同一级:
使用failure构建失败了执行,success构建成功了执行,到这里达到可用状态