lizw 7 mesi fa
parent
commit
be66ff3214
1 ha cambiato i file con 117 aggiunte e 0 eliminazioni
  1. 117 0
      nanyao/test/logistic-wms.groovy

+ 117 - 0
nanyao/test/logistic-wms.groovy

@@ -0,0 +1,117 @@
+//file:noinspection ALL
+pipeline {
+    agent any
+
+    environment {
+        projectName = 'logistic-wms'
+        // 源码配置
+        gitCredentials = '98b675d5-b623-4b76-85eb-28a6ed865100'
+        // 构建配置
+        baseDir = "${WORKSPACE}/"
+        dockerImgTag = "$projectName:v$BUILD_NUMBER"
+        dockerfileTarget = 'test'
+        // harbor配置
+        harborProtocol = 'https://'
+        harborIP = 'swr.cn-east-3.myhuaweicloud.com'
+        harborCredentials = credentials('6de05cdf-c772-4658-8e15-94aec51283cd')
+        harborRepositorie = 'wlyc-dev'
+        // 部署配置
+        imagePullSecrets = 'hw-swr-auth'
+        k8sNamespace = 'nanyao'
+        containerPort = '8080'
+        nodePort = 'false'
+        logging = 'enable'
+        springProfiles = 'test'
+        // 自定义环境变量
+        JAVA_HOME = "/usr/local/jdk1.8.0_321"
+        NODE_HOME = "/usr/local/node-v14.20.1-linux-x64"
+        PATH = "$JAVA_HOME/bin:$NODE_HOME/bin:$PATH"
+    }
+
+    stages {
+        stage('#检查环境') {
+            steps {
+                sh """
+                    java -version
+                    node -v
+                    helm version
+                """
+            }
+        }
+
+        stage('#拉取代码') {
+            steps {
+                checkout([
+                        $class           : 'GitSCM',
+                        branches         : [[name: '*/main']],
+                        userRemoteConfigs: [[url: "https://code.50yc.com/yypt/logistic-master.git", credentialsId: "${gitCredentials}"]],
+                        extensions       : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './']],
+                ])
+                checkout([
+                        $class           : 'GitSCM',
+                        branches         : [[name: '*/main']],
+                        userRemoteConfigs: [[url: "https://code.50yc.com/yypt/logistic-wms.git", credentialsId: "${gitCredentials}"]],
+                        extensions       : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './logistic-wms/']],
+                ])
+            }
+        }
+
+        stage('#编译项目') {
+            steps {
+                sh """
+                    chmod +x gradlew
+                    ./gradlew build -x test
+                """
+            }
+        }
+
+        stage('#构建镜像') {
+            steps {
+                sh """
+                    cd $baseDir
+                    pwd
+                    sudo docker build -f ./Dockerfile-logistic-wms --target $dockerfileTarget -t $dockerImgTag $baseDir
+                """
+            }
+        }
+
+        stage('#推送镜像') {
+            steps {
+                sh 'sudo docker login --username $harborCredentials_USR --password $harborCredentials_PSW $harborProtocol$harborIP'
+                sh "sudo docker tag $dockerImgTag $harborIP/$harborRepositorie/$dockerImgTag"
+                sh "sudo docker push $harborIP/$harborRepositorie/$dockerImgTag"
+                sh "sudo docker rmi $harborIP/$harborRepositorie/$dockerImgTag"
+                sh "sudo docker rmi $dockerImgTag"
+            }
+        }
+
+        stage('#部署服务') {
+            steps {
+                sh """
+                    helm repo add lizw-repo https://gitee.com/LiZhiW/helm-chart/raw/master
+                    helm repo update lizw-repo
+                """
+                script {
+                    def deployCMD = new StringBuilder()
+                    deployCMD.append("helm upgrade --install $projectName lizw-repo/java01")
+                    deployCMD.append(" --namespace $k8sNamespace --create-namespace")
+                    deployCMD.append(" --version 0.0.1")
+                    deployCMD.append(" --set env.SPRING_PROFILES='$springProfiles'")
+                    deployCMD.append(" --set env.JAVA_MEM_OPTS='-server -Xms256m -Xmx256m'")
+                    //deployCMD.append(" --set env.JAVA_ADD_OPENS='--add-exports=org.graalvm.truffle/com.oracle.truffle.api.interop=ALL-UNNAMED'")
+                    deployCMD.append(" --set image='$harborIP/$harborRepositorie/$dockerImgTag'")
+                    deployCMD.append(" --set imagePullSecrets='$imagePullSecrets'")
+                    deployCMD.append(" --set containerPort='$containerPort'")
+                    deployCMD.append(" --set nodePort='$nodePort'")
+                    deployCMD.append(" --set labels.logging=$logging")
+                    //deployCMD.append(" --set nodeSelector.enable='true'")
+                    //deployCMD.append(" --set nodeSelector.values\\[0\\]='master1'")
+                    //deployCMD.append(" --set nodeSelector.values\\[1\\]='worker1'")
+                    deployCMD.append(" --set livenessProbe.initialDelaySeconds='60'")
+                    deployCMD.append(" --set readinessProbe.initialDelaySeconds='60'")
+                    sh deployCMD.toString()
+                }
+            }
+        }
+    }
+}