2 changed files with 126 additions and 1 deletions
@ -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() |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue