1. 添加参数
2. 生成流水线语法。
3.放入gitlab中的 jenkins file
4.使用mvn编译pipeline工程。
5.把上述流水线语法添加到 gitlab 中的jenkins file文件中,然后commit。
6. 去jenkins 的workspace目录中查看文件,此时没有target文件,编译完之后就会有 traget文件。
7. jenkins编译完成以后,多出了target文件。
8 通过sonarqube 做一次代码监测。
/var/lib/jenkins/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/
-Dsonar.login=e41b78482304960ec151846565482790b1738469
9.生成流水线脚本
sh '''/var/lib/jenkins/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/
-Dsonar.login=e41b78482304960ec151846565482790b1738469'''
10 把这条语句添加到gitlab中的jenkinsfile中,再次编译。
11. 通过docker制作自定义镜像。
mv target/*.jar docker/
docker build -t ${JOB_NAME}:${tag} ./docker/
12.生成流水线语法语句
sh '''mv target/*.jar docker/
docker build -t ${JOB_NAME}:${tag} ./docker/
'''
13.再次编译会发现在本地已经有了新的镜像。
14 将镜像推送至harbor仓库中。
environment{
harborUser = 'admin' harborPassword = 'Harbor12345' harborAddress = '192.168.30.107:5012' harborRepo = 'repo' }
sh '''docker login -u ${harborUser} -p ${harborPassword} ${harborAddress} docker tag ${JOB_NAME}:${tag} ${harborAddress}/${harborRepo}/${JOB_NAME}:${tag} docker push ${harborAddress}/${harborRepo}/${JOB_NAME}:${tag} '''
15 此时去harbor 中去看,已经生成了新的镜像。
16 pipeline 通知目标服务器部署项目。
deloy.sh $harborAddress $harborRepo $JOB_NAME $tag $container_port $host_port
sshPublisher(publishers: [sshPublisherDesc(configName: '192.168.30.106', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "deloy.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)])
17.再次编译,完成以后目标服务器上出现了新的容器
18. 构建后钉钉通知消息。