Jenkins pipeline mail

流水线语法的入口

打开你需要设置邮件发送的流水线任务,你可以看到「流水线语法」的入口


或者进入它该的「配置」界面,下拉到底你一样也可以看到「流水线语法」的入口

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对应的内容是我随意写的,所以我这里收到的是一封构建失败的邮件,符合预期。

猜你喜欢

转载自blog.csdn.net/uwoerla/article/details/132420156