首页 > 解决方案 > Jenkinsfile 中通知插件的 Groovy 表示

问题描述

如何在 Jenkinsfile 中表示 Jenkins 作业配置的 Notifications Endpoint 部分(以 groovy 脚本的形式)?我已经安装了通知插件,但我不确定如何使用它。

标签: jenkinsjenkins-pluginsjenkins-pipeline

解决方案


在我的詹金斯管道中,我做了以下事情:

pipeline {
// ..
stages {
    stage('Notify') {

    script { 
        def build = currentBuild // global variable in pipeline -> https://opensource.triology.de/jenkins/pipeline-syntax/globals#currentBuild

        def targetUrl = "http://some-url?{some-query-params}"
        def buildUrl = build.absoluteUrl
        def buildNumber = build.number
        def buildStatus = build.currentResult

        httpRequest url: targetUrl, contentType: 'APPLICATION_JSON', httpMode: 'POST', responseHandle: 'NONE', timeout: 30, requestBody: """
        {
            "name": "${args.serviceName}",
            "build": {
                "full_url": "${buildUrl}",
                "number": "${buildNumber}",
                "phase": "FINISHED",
                "status": "${buildStatus}"
            }
        }
        """
    }
}

推荐阅读