3.7-使用jenkins 的pipeline实现maven项目的自动化构建部署

使用jenkins 的pipeline实现maven项目的自动化构建部署

回到第一章:目录


文章目录

  • 使用jenkins 的pipeline实现maven项目的自动化构建部署
    • 1、环境配置
    • 2、jenkins项目配置
    • 3、在blueOcean中构建部署


1、环境配置

同上一节3.6-使用Jenkins、gitlab、sonar、testNG实现maven项目的自动化构建部署

达到的效果和上一节的构建的效果是一致的:开发上传代码到gitlab的master分支,然后等待自动化部署完成,然后检查应用是否正常。
这节重点介绍pipeline语法的配置方法。

2、jenkins项目配置

新建项目:devopsPlay_maven_pipline
3.7-使用jenkins 的pipeline实现maven项目的自动化构建部署_第1张图片
配置触发规则:
3.7-使用jenkins 的pipeline实现maven项目的自动化构建部署_第2张图片
配置流水线代码:
3.7-使用jenkins 的pipeline实现maven项目的自动化构建部署_第3张图片
脚本为:

node () {
def workspace = pwd()
  stage '拉取代码'
     git changelog: false, credentialsId: 'a4001502-71ca-442a-9b88-8dc408b2dc42', poll: false, url: 'http://192.168.119.133/Dev1/devopsplay.git'
   
	stage '编译代码'
    bat 'mvn compile'

	stage '运行单测 '
    bat 'mvn test'
    
    stage 'jacoco单测报告'
	//jacoco buildOverBuild: true, changeBuildStatus: true, deltaBranchCoverage: '80', deltaClassCoverage: '100', deltaComplexityCoverage: '80', deltaInstructionCoverage: '80', deltaLineCoverage: '80', deltaMethodCoverage: '80', maximumBranchCoverage: '80', maximumClassCoverage: '100', maximumComplexityCoverage: '80', maximumInstructionCoverage: '80', maximumLineCoverage: '80', maximumMethodCoverage: '80', minimumBranchCoverage: '80', minimumClassCoverage: '80', minimumComplexityCoverage: '80', minimumInstructionCoverage: '80', minimumLineCoverage: '80', minimumMethodCoverage: '80', runAlways: true
	jacoco()
	
    stage '打包 '
    bat 'mvn clean package -Dmaven.test.skip=true'
    
    stage 'sonar代码扫描'
	bat 'sonar-scanner'
	
	stage '部署到服务器'
	sshPublisher(publishers: [sshPublisherDesc(configName: 'devops演示项目应用服务器', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /home/devopsPlay
kill -9 $(lsof -i:9001 -t)
mv ./new/DevopsPlay-1.0-SNAPSHOT.jar DevopsPlay-1.0-SNAPSHOT.jar 
nohup /usr/local/java/bin/java -jar "/home/devopsPlay/DevopsPlay-1.0-SNAPSHOT.jar"> "/home/devopsPlay/log.txt" 2>&1 &
''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'devopsPlay/new', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: '**/DevopsPlay-1.0-SNAPSHOT.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}

3、在blueOcean中构建部署

3.7-使用jenkins 的pipeline实现maven项目的自动化构建部署_第4张图片

3.7-使用jenkins 的pipeline实现maven项目的自动化构建部署_第5张图片
3.7-使用jenkins 的pipeline实现maven项目的自动化构建部署_第6张图片

你可能感兴趣的:(开发-测试技术基础知识培训)