wms-system-test.groovy 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. //file:noinspection ALL
  2. pipeline {
  3. agent any
  4. environment {
  5. projectName = 'wms-system-test'
  6. // 源码配置
  7. git = 'http://git.yvanui.com/jztd/wms85std.git'
  8. gitCredentials = 'git-lizhiwei'
  9. // 构建配置
  10. baseDir = "${WORKSPACE}/"
  11. dockerImgTag = "$projectName:v$BUILD_NUMBER"
  12. dockerfileTarget = 'test'
  13. // harbor配置
  14. harborProtocol = 'http://'
  15. harborIP = '10.0.93.197:30001'
  16. harborCredentials = credentials('harbor-admin')
  17. harborRepositorie = 'wms-test'
  18. // 部署配置
  19. imagePullSecrets = 'harbor-secret'
  20. k8sNamespace = 'wms-test'
  21. springProfiles = "test-sd2"
  22. containerPort = '8080'
  23. nodePort = '30010'
  24. // 自定义环境变量
  25. JAVA_HOME = '/opt/jenkins-agent/env/java/jdk1.8.0_411'
  26. GRADLE_HOME = '/opt/jenkins-agent/env/gradle/gradle-6.8.3'
  27. MAVEN_HOME = '/opt/jenkins-agent/env/maven/apache-maven-3.9.7'
  28. NODE_HOME = '/opt/jenkins-agent/env/nodejs/node-v16.20.2-linux-x64'
  29. PATH = "$JAVA_HOME/bin:$GRADLE_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:$PATH"
  30. }
  31. stages {
  32. stage('#检查环境') {
  33. steps {
  34. sh """
  35. node -v
  36. java -version
  37. gradle -v
  38. helm version
  39. """
  40. }
  41. }
  42. stage('#拉取代码') {
  43. steps {
  44. checkout([
  45. $class : 'GitSCM',
  46. branches : [[name: '*/sd_dsl2']],
  47. userRemoteConfigs: [[url: "${git}", credentialsId: "${gitCredentials}"]],
  48. extensions : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './']],
  49. ])
  50. checkout([
  51. $class : 'GitSCM',
  52. branches : [[name: '*/8.6']],
  53. userRemoteConfigs: [[url: "http://git.yvanui.com/lizhiwei/yvan-framework.git", credentialsId: "${gitCredentials}"]],
  54. extensions : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './yvan-framework/']],
  55. ])
  56. checkout([
  57. $class : 'GitSCM',
  58. branches : [[name: '*/master']],
  59. userRemoteConfigs: [[url: "http://git.yvanui.com/luoyifan/yvan-ui.git", credentialsId: "${gitCredentials}"]],
  60. extensions : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './yvan-ui/']],
  61. ])
  62. }
  63. }
  64. stage('#编译项目') {
  65. steps {
  66. sh """
  67. chmod +x gradlew
  68. ./gradlew :wms-modules:wms-system:build -x test
  69. cd wms-ui
  70. yarn
  71. """
  72. }
  73. }
  74. stage('#构建镜像') {
  75. steps {
  76. sh """
  77. cd $baseDir
  78. pwd
  79. sudo docker build -f $baseDir./Dockerfile-wms-system --target $dockerfileTarget -t $dockerImgTag $baseDir
  80. """
  81. }
  82. }
  83. stage('#推送镜像') {
  84. steps {
  85. sh 'sudo docker login --username $harborCredentials_USR --password $harborCredentials_PSW $harborProtocol$harborIP'
  86. sh "sudo docker tag $dockerImgTag $harborIP/$harborRepositorie/$dockerImgTag"
  87. sh "sudo docker push $harborIP/$harborRepositorie/$dockerImgTag"
  88. sh "sudo docker system prune --filter 'until=72h' -f"
  89. }
  90. }
  91. stage('#部署服务') {
  92. steps {
  93. sh """
  94. helm repo add lizw-repo https://gitee.com/LiZhiW/helm-chart/raw/master
  95. helm repo update lizw-repo
  96. """
  97. script {
  98. def deployCMD = new StringBuilder()
  99. deployCMD.append("helm upgrade --install $projectName lizw-repo/java01")
  100. deployCMD.append(" --namespace $k8sNamespace --create-namespace")
  101. deployCMD.append(" --version 0.0.1")
  102. deployCMD.append(" --set env.SPRING_PROFILES='$springProfiles'")
  103. deployCMD.append(" --set env.JAVA_MEM_OPTS='-server -Xms2048m -Xmx2048m'")
  104. deployCMD.append(" --set env.JAVA_OPTS_EXT='--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED'")
  105. deployCMD.append(" --set image='$harborIP/$harborRepositorie/$dockerImgTag'")
  106. deployCMD.append(" --set imagePullSecrets='$imagePullSecrets'")
  107. deployCMD.append(" --set containerPort='$containerPort'")
  108. deployCMD.append(" --set nodePort='$nodePort'")
  109. deployCMD.append(" --set nodeSelector.enable='true'")
  110. deployCMD.append(" --set nodeSelector.values\\[0\\]='master1'")
  111. deployCMD.append(" --set livenessProbe.initialDelaySeconds='100'")
  112. deployCMD.append(" --set readinessProbe.initialDelaySeconds='100'")
  113. sh deployCMD.toString()
  114. }
  115. }
  116. }
  117. }
  118. }