logistic-front.groovy 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. //file:noinspection ALL
  2. pipeline {
  3. agent any
  4. environment {
  5. projectName = 'logistic-front'
  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. // 自定义环境变量
  24. JAVA_HOME = "/usr/local/jdk1.8.0_321"
  25. NODE_HOME = "/usr/local/node-v14.20.1-linux-x64"
  26. PATH = "$JAVA_HOME/bin:$NODE_HOME/bin:$PATH"
  27. }
  28. stages {
  29. stage('#检查环境') {
  30. steps {
  31. sh """
  32. java -version
  33. node -v
  34. helm version
  35. """
  36. }
  37. }
  38. stage('#拉取代码') {
  39. steps {
  40. checkout([
  41. $class : 'GitSCM',
  42. branches : [[name: '*/main']],
  43. userRemoteConfigs: [[url: "https://code.50yc.com/yypt/logistic-master.git", credentialsId: "${gitCredentials}"]],
  44. extensions : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './']],
  45. ])
  46. }
  47. }
  48. stage('#编译项目') {
  49. steps {
  50. sh """
  51. npm config set registry https://registry.npmjs.org/
  52. yarn config set registry https://registry.npmjs.org/ -g
  53. cd $baseDir
  54. cd front/public/yvan-ui
  55. git pull
  56. cd $baseDir
  57. cp -r front/public/yvan-ui/ front/node_modules/
  58. cp -r front/node_modules/yvan-ui/dist/js/ front/public/
  59. cd $baseDir
  60. cd front
  61. ls -hl
  62. ls -hl public
  63. ls -hl public/yvan-ui
  64. ls -hl node_modules
  65. ls -hl node_modules/yvan-ui
  66. """
  67. }
  68. }
  69. stage('#构建镜像') {
  70. steps {
  71. sh """
  72. cd $baseDir
  73. pwd
  74. sudo docker build -f ./Dockerfile-logistic-front --target $dockerfileTarget -t $dockerImgTag $baseDir
  75. """
  76. }
  77. }
  78. stage('#推送镜像') {
  79. steps {
  80. sh 'sudo docker login --username $harborCredentials_USR --password $harborCredentials_PSW $harborProtocol$harborIP'
  81. sh "sudo docker tag $dockerImgTag $harborIP/$harborRepositorie/$dockerImgTag"
  82. sh "sudo docker push $harborIP/$harborRepositorie/$dockerImgTag"
  83. sh "sudo docker rmi $harborIP/$harborRepositorie/$dockerImgTag"
  84. sh "sudo docker rmi $dockerImgTag"
  85. }
  86. }
  87. stage('#部署服务') {
  88. steps {
  89. sh """
  90. helm repo add lizw-repo https://gitee.com/LiZhiW/helm-chart/raw/master
  91. helm repo update lizw-repo
  92. """
  93. script {
  94. def deployCMD = new StringBuilder()
  95. deployCMD.append("helm upgrade --install $projectName lizw-repo/node01")
  96. deployCMD.append(" --namespace $k8sNamespace --create-namespace")
  97. deployCMD.append(" --version 0.0.1")
  98. deployCMD.append(" --set env.CMD_PARAMS=''")
  99. deployCMD.append(" --set image='$harborIP/$harborRepositorie/$dockerImgTag'")
  100. deployCMD.append(" --set imagePullSecrets='$imagePullSecrets'")
  101. deployCMD.append(" --set containerPort='$containerPort'")
  102. deployCMD.append(" --set nodePort='$nodePort'")
  103. deployCMD.append(" --set labels.logging=$logging")
  104. //deployCMD.append(" --set nodeSelector.enable='true'")
  105. //deployCMD.append(" --set nodeSelector.values\\[0\\]='master1'")
  106. //deployCMD.append(" --set nodeSelector.values\\[1\\]='worker1'")
  107. deployCMD.append(" --set livenessProbe.initialDelaySeconds='10'")
  108. deployCMD.append(" --set readinessProbe.initialDelaySeconds='10'")
  109. sh deployCMD.toString()
  110. }
  111. }
  112. }
  113. }
  114. }