| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // 所有的脚本命令都放在pipeline中
- pipeline{
- // 指定任务在哪个集群节点中执行
- agent any
-
- // 声明全局变量,方便后面使用
- environment {
- harborUser = 'admin'
- harborPasswd = 'Harbor12345'
- harborAddress = '47.103.25.235:8899'
- harborRepo = 'repo'
- }
-
- stages{
- stage('拉取git仓库代码'){
- steps{
- checkout scmGit(branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: '184a2c7a-1d7b-448f-90c4-3474c395c7b3', url: 'http://110.42.248.201:30000/chl/mytest.git']])
- }
- }
- stage('通过maven构建项目'){
- steps{
- sh '/var/jenkins_home/maven/bin/mvn clean package -DskipTests'
- }
- }
- stage('通过SonarQube做代码质量检测'){
- 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=b5071fbe332d4863b0c96b0d648593b23ec8d6c8'
- }
- }
- stage('通过Docker制作自定义镜像'){
- steps{
- sh '''mv ./target/*.jar ./docker
- docker build -t ${JOB_NAME}:${tag} ./docker/'''
- }
- }
- stage('将自定义镜像推送到Harbor'){
- steps{
- sh '''docker login -u ${harborUser} -p ${harborPasswd} ${harborAddress}
- docker tag ${JOB_NAME}:${tag} ${harborAddress}/${harborRepo}/${JOB_NAME}:${tag}
- docker push ${harborAddress}/${harborRepo}/${JOB_NAME}:${tag}'''
- }
- }
- stage('通过Publish Over SSH通知目标服务器'){
- steps{
- sshPublisher(publishers: [sshPublisherDesc(configName: 'test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "deploy.sh $harborAddress $harborRepo $JOB_NAME $tag $container_port $host_port", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
- echo '通过Publish Over SSH通知目标服务器 - SUCCESS'
- }
- }
- }
- post {
- success{
- dingtalk(
- robot: 'Jenkins-DingDing',
- type: 'MARKDOWN'
- title: "success: ${JOB_NAME}"
- text: ["- 构建成功:${JOB_NAME} \n - 版本: ${tag} \n - 持续时间: ${currentBuild.durationString}"]
- )
- }
- failure{
- dingtalk(
- robot: 'Jenkins-DingDing',
- type: 'MARKDOWN'
- title: "success: ${JOB_NAME}"
- text: ["- 构建失败:${JOB_NAME} \n - 版本: ${tag} \n - 持续时间: ${currentBuild.durationString}"]
- )
- }
- }
- }
|