logistic-oms.groovy 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //file:noinspection ALL
  2. pipeline {
  3. agent any
  4. environment {
  5. projectName = 'logistic-oms'
  6. // 源码配置
  7. gitCredentials = '98b675d5-b623-4b76-85eb-28a6ed865100'
  8. // 构建配置
  9. baseDir = "${WORKSPACE}/"
  10. dockerImgTag = "$projectName:v$BUILD_NUMBER"
  11. dockerfileTarget = 'test'
  12. // harbor配置
  13. harborProtocol = 'https://'
  14. harborIP = 'swr.cn-east-3.myhuaweicloud.com'
  15. harborCredentials = credentials('6de05cdf-c772-4658-8e15-94aec51283cd')
  16. harborRepositorie = 'wlyc-dev'
  17. // 部署配置
  18. imagePullSecrets = 'hw-swr-auth'
  19. k8sNamespace = 'nanyao'
  20. containerPort = '8080'
  21. nodePort = 'false'
  22. logging = 'enable'
  23. springProfiles = 'test'
  24. // 自定义环境变量
  25. JAVA_HOME = "/usr/local/jdk1.8.0_321"
  26. NODE_HOME = "/usr/local/node-v14.20.1-linux-x64"
  27. PATH = "$JAVA_HOME/bin:$NODE_HOME/bin:$PATH"
  28. }
  29. stages {
  30. stage('#检查环境') {
  31. steps {
  32. sh """
  33. java -version
  34. node -v
  35. helm version
  36. """
  37. }
  38. }
  39. stage('#拉取代码') {
  40. steps {
  41. checkout([
  42. $class : 'GitSCM',
  43. branches : [[name: '*/main']],
  44. userRemoteConfigs: [[url: "https://code.50yc.com/yypt/logistic-master.git", credentialsId: "${gitCredentials}"]],
  45. extensions : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './']],
  46. ])
  47. checkout([
  48. $class : 'GitSCM',
  49. branches : [[name: '*/main']],
  50. userRemoteConfigs: [[url: "https://code.50yc.com/yypt/logistic-oms.git", credentialsId: "${gitCredentials}"]],
  51. extensions : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './logistic-oms/']],
  52. ])
  53. }
  54. }
  55. stage('#编译项目') {
  56. steps {
  57. sh """
  58. chmod +x gradlew
  59. ./gradlew build -x test
  60. """
  61. }
  62. }
  63. stage('#构建镜像') {
  64. steps {
  65. sh """
  66. cd $baseDir
  67. pwd
  68. sudo docker build -f ./Dockerfile-logistic-oms --target $dockerfileTarget -t $dockerImgTag $baseDir
  69. """
  70. }
  71. }
  72. stage('#推送镜像') {
  73. steps {
  74. sh 'sudo docker login --username $harborCredentials_USR --password $harborCredentials_PSW $harborProtocol$harborIP'
  75. sh "sudo docker tag $dockerImgTag $harborIP/$harborRepositorie/$dockerImgTag"
  76. sh "sudo docker push $harborIP/$harborRepositorie/$dockerImgTag"
  77. sh "sudo docker rmi $harborIP/$harborRepositorie/$dockerImgTag"
  78. sh "sudo docker rmi $dockerImgTag"
  79. }
  80. }
  81. stage('#部署服务') {
  82. steps {
  83. sh """
  84. helm repo add lizw-repo https://gitee.com/LiZhiW/helm-chart/raw/master
  85. helm repo update lizw-repo
  86. """
  87. script {
  88. def deployCMD = new StringBuilder()
  89. deployCMD.append("helm upgrade --install $projectName lizw-repo/java01")
  90. deployCMD.append(" --namespace $k8sNamespace --create-namespace")
  91. deployCMD.append(" --version 0.0.1")
  92. deployCMD.append(" --set env.SPRING_PROFILES='$springProfiles'")
  93. deployCMD.append(" --set env.JAVA_MEM_OPTS='-server -Xms1024m -Xmx1024m'")
  94. //deployCMD.append(" --set env.JAVA_ADD_OPENS='--add-exports=org.graalvm.truffle/com.oracle.truffle.api.interop=ALL-UNNAMED'")
  95. deployCMD.append(" --set image='$harborIP/$harborRepositorie/$dockerImgTag'")
  96. deployCMD.append(" --set imagePullSecrets='$imagePullSecrets'")
  97. deployCMD.append(" --set containerPort='$containerPort'")
  98. deployCMD.append(" --set nodePort='$nodePort'")
  99. deployCMD.append(" --set labels.logging=$logging")
  100. //deployCMD.append(" --set nodeSelector.enable='true'")
  101. //deployCMD.append(" --set nodeSelector.values\\[0\\]='master1'")
  102. //deployCMD.append(" --set nodeSelector.values\\[1\\]='worker1'")
  103. deployCMD.append(" --set livenessProbe.initialDelaySeconds='60'")
  104. deployCMD.append(" --set readinessProbe.initialDelaySeconds='60'")
  105. sh deployCMD.toString()
  106. }
  107. }
  108. }
  109. }
  110. }