123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- //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()
- }
- }
- }
- }
- }
|