Jenkinsfile 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // 所有的脚本命令都放在pipeline中
  2. pipeline{
  3. // 指定任务在哪个集群节点中执行
  4. agent any
  5. // 声明全局变量,方便后面使用
  6. environment {
  7. key = 'value'
  8. }
  9. stages{
  10. stage('拉取git仓库代码'){
  11. steps{
  12. checkout scmGit(branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: '184a2c7a-1d7b-448f-90c4-3474c395c7b3', url: 'http://110.42.248.201:30000/chl/mytest.git']])
  13. }
  14. }
  15. stage('通过maven构建项目'){
  16. steps{
  17. sh '/var/jenkins_home/maven/bin/mvn clean package -DskipTests'
  18. }
  19. }
  20. stage('通过SonarQube做代码质量检测'){
  21. steps{
  22. 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'
  23. }
  24. }
  25. stage('通过Docker制作自定义镜像'){
  26. steps{
  27. sh '''mv ./target/*.jar ./docker
  28. docker build -t ${JOB_NAME}:${tag} ./docker/'''
  29. }
  30. }
  31. stage('将自定义镜像推送到Harbor'){
  32. steps{
  33. sh '''docker login -u ${harborUser} -p ${harborPasswd} ${harborAddress}
  34. docker tag ${JOB_NAME}:${tag} ${harborAddress}/${harborRepo}/${JOB_NAME}:${tag}
  35. docker push ${harborAddress}/${harborRepo}/${JOB_NAME}:${tag}'''
  36. }
  37. }
  38. stage('通过Publish Over SSH通知目标服务器'){
  39. steps{
  40. echo '通过Publish Over SSH通知目标服务器 - SUCCESS'
  41. }
  42. }
  43. }
  44. }