Jenkins需要配置邮件通知,安装插件Email Extension,然后进入系统管理->系统设置->Extended E-email Notification。这里我使用的是QQ邮箱,填写SMTP服务器地址smtp.qq.com和端口465注意要开启SSL,密码为授权码。
配置插件
stage('Email') {
steps {
script {
def mailRecipients = 'XXX@xxxxx.xxx-domain'
def jobName = currentBuild.fullDisplayName
emailext body: '''${SCRIPT, template="groovy-html.template"}''',
mimeType: 'text/html',
subject: "[Jenkins] ${jobName}",
to: "${mailRecipients}",
replyTo: "${mailRecipients}",
recipientProviders: [[$class: 'CulpritsRecipientProvider']]
}
}
}
我们在共享库中封装一个toemail.groovy。新建文件src/org/devops/toemail.groovy。在这个文件中,我们写了一段HTML代码,主要展示Jenkins的构建信息。
packageorg.devops
//定义邮件内容
def Email(status,emailUser)
{
emailext body: “””<!DOCTYPE html>
imgsrc="http://192.168.1.200:8080/static/0eef74bf/images/headshot.png"
构建信息
- 项目名称:${JOB_NAME}
- 构建编号:${BUILD_ID}
- 构建状态: ${status}
- 项目地址:
${BUILD_URL} - 构建日志:
${BUILD_URL}console
“””,
subject: “Jenkins-${JOB_NAME}项目构建信息 “,to: emailUser
}
测试发送
!groovy
@Library(‘jenkinslibrary@master’) _
//func from shareibrary
def gitlab = new org.devops.gitlab()
def toemail = new org.devops.toemail()
//branch
branchName = branch - ‘refs/heads/‘
currentBuild.description = “Trigger by ${userName} ${branch}”gitlab.ChangeCommitStatus(projectId, commitSha, ‘running’)
//pipeline
pipeline
{
agent
{
node
{
label ‘build’ }
}
stages {<br /> stage('CheckOut')<br />{ steps { script { println("${branchName}")<br />}<br /> }<br />}<br /> }
post {
always { script { println(‘always’)
}
}
success {
script { println(‘success’) gitlab.ChangeCommitStatus(projectId, commitSha, ‘success’)
toemail.Email(‘流水线成功’,userEmail) }
}
failure { script
{
println(‘failure’)
gitlab.ChangeCommitStatus(projectId,commitSha,’failed’) toemail.Email(‘流水线失败了!’,userEmail)
}
}
aborted {
script { println(‘aborted’) gitlab.ChangeCommitStatus(projectId,commitSha,’canceled’) toemail.Email(‘流水线被取消了!’,userEmail) }
}
}
}