//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 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 cd wms-ui yarn """ } } 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='100'") deployCMD.append(" --set readinessProbe.initialDelaySeconds='100'") sh deployCMD.toString() } } } } }