lizw 10 місяців тому
батько
коміт
54813c7874
2 змінених файлів з 126 додано та 1 видалено
  1. 1 1
      sd_dsl/02k8s-install-centos.sh
  2. 125 0
      sd_dsl/wms-system-test.groovy

+ 1 - 1
sd_dsl/02k8s-install-centos.sh

@@ -2445,7 +2445,7 @@ function init::cluster() {
   # 1. 初始化节点
   #init::node
   # 2. 安装包
-  #install::package
+  install::package
   # 3. 初始化kubeadm
   #kubeadm::init
   # 4. 加入集群

+ 125 - 0
sd_dsl/wms-system-test.groovy

@@ -0,0 +1,125 @@
+//file:noinspection ALL
+
+pipeline {
+    agent any
+
+    environment {
+        projectName = 'wms-system-test'
+        // 源码配置
+        git = 'http://git.yvanui.com/jztd/wms85std.git'
+        gitCredentials = 'git-lizhiwei'
+        // 构建配置
+        baseDir = "${WORKSPACE}/"
+        dockerImgTag = "$projectName:v$BUILD_NUMBER"
+        dockerfileTarget = 'test'
+        // harbor配置
+        harborProtocol = 'http://'
+        harborIP = '10.0.93.197:30001'
+        harborCredentials = credentials('harbor-admin')
+        harborRepositorie = 'wms-test'
+        // 部署配置
+        imagePullSecrets = 'harbor-secret'
+        k8sNamespace = 'wms-test'
+        springProfiles = "test-sd2"
+        containerPort = '8080'
+        nodePort = '30010'
+        // 自定义环境变量
+        JAVA_HOME = '/opt/jenkins-agent/env/java/jdk1.8.0_411'
+        GRADLE_HOME = '/opt/jenkins-agent/env/gradle/gradle-6.8.3'
+        MAVEN_HOME = '/opt/jenkins-agent/env/maven/apache-maven-3.9.7'
+        NODE_HOME = '/opt/jenkins-agent/env/nodejs/node-v16.20.2-linux-x64'
+        PATH = "$JAVA_HOME/bin:$GRADLE_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:$PATH"
+    }
+
+    stages {
+        stage('#检查环境') {
+            steps {
+                sh """
+                    node -v
+                    yarn -v
+                    java -version
+                    gradle -v
+                    helm version
+                """
+            }
+        }
+
+        stage('#拉取代码') {
+            steps {
+                checkout([
+                        $class           : 'GitSCM',
+                        branches         : [[name: '*/sd_dsl2']],
+                        userRemoteConfigs: [[url: "${git}", credentialsId: "${gitCredentials}"]],
+                        extensions       : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './']],
+                ])
+                checkout([
+                        $class           : 'GitSCM',
+                        branches         : [[name: '*/8.6']],
+                        userRemoteConfigs: [[url: "http://git.yvanui.com/lizhiwei/yvan-framework.git", credentialsId: "${gitCredentials}"]],
+                        extensions       : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './yvan-framework/']],
+                ])
+                checkout([
+                        $class           : 'GitSCM',
+                        branches         : [[name: '*/master']],
+                        userRemoteConfigs: [[url: "http://git.yvanui.com/luoyifan/yvan-ui.git", credentialsId: "${gitCredentials}"]],
+                        extensions       : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './yvan-ui/']],
+                ])
+            }
+        }
+
+        stage('#编译项目') {
+            steps {
+                sh """
+                    chmod +x gradlew
+                    ./gradlew :wms-modules:wms-system:build -x test
+                """
+            }
+        }
+
+        stage('#构建镜像') {
+            steps {
+                sh """
+                    cd $baseDir
+                    pwd
+                    sudo docker build -f $baseDir./Dockerfile-wms-system --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 system prune --filter 'until=72h' -f"
+            }
+        }
+
+        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 -Xms2048m -Xmx2048m'")
+                    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'")
+                    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 nodeSelector.enable='true'")
+                    deployCMD.append(" --set nodeSelector.values\\[0\\]='master1'")
+                    deployCMD.append(" --set livenessProbe.initialDelaySeconds='30'")
+                    deployCMD.append(" --set readinessProbe.initialDelaySeconds='30'")
+                    sh deployCMD.toString()
+                }
+            }
+        }
+    }
+}