From 54813c7874a77cd845e59592d5522c6bfa1278d2 Mon Sep 17 00:00:00 2001 From: lizw <1183409807@qq.com> Date: Fri, 2 Aug 2024 13:47:14 +0800 Subject: [PATCH] ... --- sd_dsl/02k8s-install-centos.sh | 2 +- sd_dsl/wms-system-test.groovy | 125 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 sd_dsl/wms-system-test.groovy diff --git a/sd_dsl/02k8s-install-centos.sh b/sd_dsl/02k8s-install-centos.sh index 3f253a4..ddc7d88 100644 --- a/sd_dsl/02k8s-install-centos.sh +++ b/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. 加入集群 diff --git a/sd_dsl/wms-system-test.groovy b/sd_dsl/wms-system-test.groovy new file mode 100644 index 0000000..ac9b2d1 --- /dev/null +++ b/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() + } + } + } + } +} \ No newline at end of file