// 山田mster 后端備份 pipeline { agent any environment { DINGDING_ROBOT_URL = 'https://oapi.dingtalk.com/robot/send?access_token=aa67b55f25245c319aedd6efe5d20d81ac1cfe6e858c15d20914e8fd26a4e6ac' BRANCH= "shantian" BUILD_USER_ID = "" BUILD_USER = "" BUILD_USER_EMAIL = "" ChangeLog = "" } stages { stage( 'checkout' ) { steps { checkout([$class: 'GitSCM' , branches: [[name: '*/shantian' ]], doGenerateSubmoduleConfigurations: false , extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'http://192.168.100.140/esl_backend/zk.git' ]]]) } } // 構建 stage( 'Build' ) { steps { withMaven(jdk: 'jdk' , maven: 'maven' ) { sh 'mvn clean package -DskipTests' } } } // 同步jar包到服務器 start stage( 'Push package' ) { steps { sshPublisher(publishers: [sshPublisherDesc(configName: '47.91.29.12' , transfers: [sshTransfer(cleanRemote: false , excludes: '' , execCommand: 'cd /usr/local/esl/ && docker-compose up -d --build' , execTimeout: 120000, flatten: false , makeEmptyDirs: false , noDefaultExcludes: false , patternSeparator: '[, ]+' , remoteDirectory: '/usr/local/esl/app' , remoteDirectorySDF: false , removePrefix: 'target' , sourceFiles: 'target/*' )], usePromotionTimestamp: false , useWorkspaceInPromotion: false , verbose: false )]) } } // 山田backup 01 start stage( 'push package Backup 01' ) { steps { sshPublisher(publishers: [sshPublisherDesc(configName: '8.209.252.82' , transfers: [sshTransfer(cleanRemote: false , excludes: '' , execCommand: 'cd /usr/local/esl/ && docker-compose up -d --build' , execTimeout: 120000, flatten: false , makeEmptyDirs: false , noDefaultExcludes: false , patternSeparator: '[, ]+' , remoteDirectory: '/usr/local/esl/app' , remoteDirectorySDF: false , removePrefix: 'target' , sourceFiles: 'target/*' )], usePromotionTimestamp: false , useWorkspaceInPromotion: false , verbose: false )]) } } // 山田 backup 02 start stage( 'Push package Backup 02' ) { steps { sshPublisher(publishers: [sshPublisherDesc(configName: '47.91.31.80' , transfers: [sshTransfer(cleanRemote: false , excludes: '' , execCommand: 'cd /usr/local/esl/ && docker-compose up -d --build' , execTimeout: 120000, flatten: false , makeEmptyDirs: false , noDefaultExcludes: false , patternSeparator: '[, ]+' , remoteDirectory: '/usr/local/esl/app' , remoteDirectorySDF: false , removePrefix: 'target' , sourceFiles: 'target/*' )], usePromotionTimestamp: false , useWorkspaceInPromotion: false , verbose: false )]) } } } post { // 構建失敗通知 failure { wrap([$class: 'BuildUser' ]) { script { BUILD_USER_ID = "${env.BUILD_USER_ID}" BUILD_USER = "${env.BUILD_USER}" BUILD_USER_EMAIL = "${env.BUILD_USER_EMAIL}" ChangeLog = "${env.ChangeLog}" } } script { dingtalk ( robot: '31c097ba-4f71-4e9e-97f0-5f13e18c1ee2' , type : 'MARKDOWN' , title: "項目構建信息" , text: [ '### 項目構建信息' , ">- job名稱: **${JOB_NAME}**" , ">- 持續時間: **${currentBuild.durationString}**" , ">- 當前分支: **${env.BRANCH}**" , ">- 構建發起: **${BUILD_USER}**" , ">- 構建結果: **構建失敗❌*" , ">- 構建日志: [點擊查看詳情](${env.BUILD_URL}console)" , // ">- 更新記錄: **${ChangeLog}**" , ], at: [ '所有人' ] ) } } // 構建成功通知 success { wrap([$class: 'BuildUser' ]) { script { BUILD_USER_ID = "${env.BUILD_USER_ID}" BUILD_USER = "${env.BUILD_USER}" BUILD_USER_EMAIL = "${env.BUILD_USER_EMAIL}" ChangeLog = "${env.ChangeLog}" } } dingtalk ( robot: '31c097ba-4f71-4e9e-97f0-5f13e18c1ee2' , type : 'MARKDOWN' , title: "項目構建信息" , text: [ '### 項目構建信息' , ">- job名稱: **${JOB_NAME}**" , ">- 持續時間: **${currentBuild.durationString}**" , ">- 當前分支: **${env.BRANCH}**" , ">- 構建發起: **${BUILD_USER}**" , ">- 構建結果: **構建成功 ✅**" , ">- 構建日志: [點擊查看詳情](${env.BUILD_URL}console)" , // ">- 流水線: [點擊查看詳情](${env.JOB_URL}console)" , // ">- 更新記錄: **${ChangeLog}**" , ], at: [ '所有人' ] ) } } } |