做網(wǎng)站前期費用個人優(yōu)秀網(wǎng)頁設計
添加釘釘機器人
在釘釘群設置里添加機器人拿出Webhook地址,設置關鍵詞
Jenkins安裝釘釘插件
Dashboard > 系統(tǒng)管理 > 插件管理,搜索構(gòu)建通知,直接搜索Ding Talk也行
安裝DingTalk插件,重啟Jenkins
來到Dashboard > 系統(tǒng)管理
滑到最底下,多了個釘釘(發(fā)送釘釘消息)
設置你的通知時機
日志里的”詳細日志“是否勾選都可以,勾上會在詳細日志里打印告警信息
添加機器人信息
告警通知方式1
修改Jenkinsfile腳本文件
和stages同級,添加post成功和失敗都通知
post{success{dingtalk(robot: 'Jenkins_Dingding',type:'MARKDOWN',title: "success: ${JOB_NAME}",text: ["- 成功構(gòu)建:${JOB_NAME}項目!\n- 版本:${version}\n- 持續(xù)時間:${currentBuild.durationString}\n- 任務:#${JOB_NAME}"],)}failure{dingtalk(robot: 'Jenkins-Dingding',type:'MARKDOWN',title: "success: ${JOB_NAME}",text: ["- 失敗構(gòu)建:${JOB_NAME}項目!\n- 版本:${version}\n- 持續(xù)時間:${currentBuild.durationString}\n- 任務:#${JOB_NAME}"],)}}
告警通知方式2(推薦)
直接在pipeline任務設置中添加釘釘機器人,我這只設置了艾特我,多個可以用逗號隔開
此方式可以點擊窗口直接跳轉(zhuǎn)到構(gòu)建頁面
支持直接登錄Jenkins控制臺
支持直接查看更改記錄
構(gòu)建完通知效果
告警1
告警2
Jenkinsfile腳本文件完整內(nèi)容
//所有腳本命令放在pipeline中
pipeline{//指定任務哪個集群節(jié)點執(zhí)行agent any //聲明全局變量,給后面使用environment{//Harbor地址harbor_addr = '192.168.170.111:80'//倉庫名harbor_warehouse = 'monster'//用戶名harbor_user = 'admin'//密碼harbor_pwd = 'Harbor12345'}stages{stage('拉取Gitlab倉庫代碼'){steps{checkout scmGit(branches: [[name: '${version}']], extensions: [], userRemoteConfigs: [[url: 'http://192.168.170.111:8888/root/jenkins-cicd-mytest.git']])}}stage('Maven構(gòu)建項目'){steps{sh '/var/jenkins_home/maven/bin/mvn clean package -DskipTests'}}stage('SonarQube檢查代碼質(zhì)量'){steps{sh '/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=target -Dsonar.login=8b2d57757d51a640fa47d90cce47b2d480170093'}}stage('制作自定義Docker鏡像'){steps{sh '''mv target/*.jar docker
docker build -t ${JOB_NAME}:$version docker/'''}}stage('推送鏡像到Harbor倉庫'){steps{sh '''docker login -u ${harbor_user} -p ${harbor_pwd} ${harbor_addr}
docker tag ${JOB_NAME}:${version} ${harbor_addr}/${harbor_warehouse}/${JOB_NAME}:${version}
docker push ${harbor_addr}/${harbor_warehouse}/${JOB_NAME}:${version}'''}}stage('通知目標服務器拉取鏡像并啟動'){steps{sshPublisher(publishers: [sshPublisherDesc(configName: '應用服務器-170.111', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "deploy.sh $harbor_addr $harbor_warehouse $JOB_NAME $version $host_port $container_port", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}}post{success{dingtalk(robot: 'Jenkins_Dingding',type:'MARKDOWN',title: "success: ${JOB_NAME}",text: ["- 成功構(gòu)建:${JOB_NAME}項目!\n- 版本:${version}\n- 持續(xù)時間:${currentBuild.durationString}\n- 任務:#${JOB_NAME}"],)}failure{dingtalk(robot: 'Jenkins-Dingding',type:'MARKDOWN',title: "success: ${JOB_NAME}",text: ["- 失敗構(gòu)建:${JOB_NAME}項目!\n- 版本:${version}\n- 持續(xù)時間:${currentBuild.durationString}\n- 任務:#${JOB_NAME}"],)}}
}