流水线语法的入口
打开你需要设置邮件发送的流水线任务,你可以看到「流水线语法」的入口
或者进入它该的「配置」界面,下拉到底你一样也可以看到「流水线语法」的入口
Jenkins pipeline mail 语法
在示例步骤处下拉找到「mail」,按照提示填写,即可生成邮件发送的 pipeline 的指令代码片段。
一个生成的邮件发送的 pipeline 的指令代码片段的样例
它最终生成的指令代码片段是下面这个样子的
mail bcc: '这里写密送', body: '这里写正文', cc: '这里写抄送', from: '', replyTo: '', subject: '这里写主题', to: '这里写收件人收件人'
当然它同时也可以设置一些高级的选项,比如媒体类型、发件人、字符集等信息
其中媒体类型有两种选择
- text/html 网页
- text/plain 文本
基于「流水线语法」页面上的信息我们可以知道「mail」这个组件的能力属于「Pipeline:Basic Steps」的范畴,不需要额外安装。
补充
-
jenkins https://plugins.jenkins.io/workflow-basic-steps/releases
-
github https://github.com/jenkinsci/workflow-basic-steps-plugin
在workflow-basic-steps-plugin
的 gitHub 源码内我们可以看到所有的 Basic Steps
Jenkins 配置 QQ 邮件
获取 QQ 邮箱的三方账号授权码
设置系统管理员邮箱地址
设置邮件通知的相关信息
SMTP服务器:smtp.qq.com
用户默认邮件后缀:@qq.com
开启STMP认证,用户名为你的个人QQ邮箱,密码为你在前面获取的 QQ 邮箱的三方账号授权码
使用SSL协议:开启
使用TLS:开启
SMTP端口:465 (默认端口)
Reply-To Address:回复地址
字符集:UTF-8
发送测试
发送测试成功
在 Pipeline 中测试
/**
* pipeline 0.0.1
*/
pipeline {
environment {
GIT_CREDENTIALSID = "your-git-credentials-id"
GIT_URL = "[email protected]:x/y.git"
}
agent any
parameters {
string(name: 'branch', defaultValue: 'develop', description: 'Which branch?')
string(name: 'tag', defaultValue: '', description: 'Which tag?')
}
tools {
//工具名称必须在Jenkins全局工具配置中预配置。
maven 'maven'
}
stages {
stage('源码准备') { // for display purposes
steps{
echo "branch: ${params.branch} ,tag: ${params.tag}"
// Get some code from a GitHub repository
script {
if(params.tag==''){
git branch: "${params.branch}", credentialsId: "${GIT_CREDENTIALSID}", url: "${GIT_URL}"
}else {
checkout(
[$class: 'GitSCM', branches: [[name: "refs/tags/${params.tag}"]],
doGenerateSubmoduleConfigurations: false, extensions: [],
submoduleCfg: [],
userRemoteConfigs: [
[credentialsId: "${GIT_CREDENTIALSID}", url: "${GIT_URL}"]
]
]
)
}
}
}
}
}
post('通知') {
success {
mail to:"[email protected]", subject:"SUCCESS: ${currentBuild.fullDisplayName}",body: "Yay, we passed."
}
failure {
mail to:"[email protected]", subject:"FAILURE: ${currentBuild.fullDisplayName}",body: "Boo, we failed."
}
unstable {
mail to:"[email protected]", subject:"UNSTABLE: ${currentBuild.fullDisplayName}",body: "Huh, we're unstable."
}
changed {
mail to:"[email protected]", subject:"CHANGED: ${currentBuild.fullDisplayName}", body: "Wow, our status changed!"
}
}
}
将上面的 pipeline 脚本在 jenkins 中执行即会触发邮件发送
执行请务必把
[email protected]
替换成你的个人邮箱.
由于脚本中的应用的GIT_URL
对应的内容是我随意写的,所以我这里收到的是一封构建失败的邮件,符合预期。