//file:noinspection ALL pipeline { agent any environment { projectName = 'logistic-oms' // 源码配置 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-oms.git", credentialsId: "${gitCredentials}"]], extensions : [[$class: 'RelativeTargetDirectory', relativeTargetDir: './logistic-oms/']], ]) } } stage('#编译项目') { steps { sh """ chmod +x gradlew ./gradlew build -x test """ } } stage('#构建镜像') { steps { sh """ cd $baseDir pwd sudo docker build -f ./Dockerfile-logistic-oms --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 -Xms1024m -Xmx1024m'") //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() } } } } }