Jenkins运维之路(Jenkins流水线改造Day02-2-容器项目)

45 阅读1分钟

上篇文章中已经将绝大部分,Jenkins容器项目打包的相关功能改造完成了,这里在对构建部署后的告警类操作进行一些补充

1.流水线告警

1.1 安装钉钉插件

image-20250915111108685

image-20250915111108685

1.2 配置钉钉插件

image-20250915111235865

image-20250915111235865

image-20250915111532829

image-20250915111532829

1.3 Pipeline钉钉告警

这里我就把成功构建的通知逻辑写到这里了,因为其他的通知逻辑基本也差不多,没必要全贴出来,大家自己也可以进行改造(另外图中是Jenkins-DingDing这个通知机器人,截图的时候没有截取到下面的BuildBoy通知机器人,你再ID里面添加的那个名字就调用哪个名字)

def createVersion() {
    // 创建了一个方法createVersion()
    // 定义一个时间戳+构建ID作为版本号,为tag使用
    return new Date().format('yyyyMMddHHmmss') + "_${env.BUILD_ID}"
}
pipeline {
    agent { node { label "node47"}}
    //上章节内容此处胜率
    // .......
    }
    post {
        always{
            script {
                println("流水线结束后,经常做的事情")
            }
        }
        success {
            script {
                // 检查用户选择的是分支还是标签
                if (params.BRANCH_TAG.startsWith("rel-")) {
                    echo "选择的是标签,不打标签。"
                } else if (params.BRANCH_TAG == "master" || params.BRANCH_TAG == "origin/master") {
                    // 只有在 master 分支时打标签
                    sh "git tag rel-${_tag}" // 打标签
                    sh "git push origin rel-${_tag}" // 推送标签到远程
                    echo "为分支 ${params.BRANCH_TAG} 打标签 rel-${_tag}。"
                } else {
                    echo "当前分支 ${params.BRANCH_TAG} 不是 master,不打标签。"
                }
        
                // 构建通知文本
                def notificationText = []
                notificationText.add("- 成功构建部署: ${JOB_NAME}项目!\n")
                notificationText.add("- 版本: ${BRANCH_TAG}\n")
                notificationText.add("- 持续时间: ${currentBuild.durationString}\n")
                notificationText.add("- 任务: #${JOB_NAME}")
        
                // 根据条件添加标签信息
                if (params.BRANCH_TAG == "master" || params.BRANCH_TAG == "origin/master") {
                    notificationText.add("- 标签: rel-${_tag}\n"// 仅在打标签时添加
                }
        
                // 发送成功通知
                dingtalk (
                    robot: 'BuildBoy',
                    type: 'MARKDOWN',
                    title: "success: ${JOB_NAME}",
                    text: notificationText // 直接传递列表
                )
            }
        }
        failure{
            dingtalk (
                robot: 'BuildBoy',
                type:'MARKDOWN',
                title: "fail: ${JOB_NAME}",
                text: ["- 失败构建部署:${JOB_NAME}项目!\n- 版本:${BRANCH_TAG}\n- 持续时间:${currentBuild.durationString}\n- 任务:#${JOB_NAME}"]
            )
        }
        aborted{
            dingtalk (
            robot: 'BuildBoy',
            type:'MARKDOWN',
            title: "aborted: ${JOB_NAME}",
            text: ["- 流水线被取消:${JOB_NAME}项目!\n- 版本:${BRANCH_TAG}\n- 持续时间:${currentBuild.durationString}\n- 任务:${JOB_NAME}"]
        )
        }
    }
}

今天时间比较赶就写到这里先,如果文章对您有帮助,给我点个赞哦!非常感谢!