|
@@ -0,0 +1,117 @@
|
|
|
|
+//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()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|