pipeline { parameters { choice choices: ['all', 'ui', 'service'], description: 'all - 前端和后端 ; ui - 仅发版前端 ; service - 仅发版后端', name: 'publish_type' } agent any stages { stage('拉取源码') { steps { checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: 'd62224c5-69cf-474a-8845-c2c2bbe1fc00', url: 'https://git.jsspisoft.com/ry-das.git']]) } } stage('编译UI') { when { expression { params.publish_type == "ui" || params.publish_type == "all" } } steps { nodejs(cacheLocationStrategy: workspace(), configId: '8e356590-2fee-4f1f-b0e9-5cea43299887', nodeJSInstallationName: 'nodejs202122') { dir("$WORKSPACE/ui/dasadmin") { sh "npm install" sh "npm run build" } } } } stage('编译后端') { when { expression { params.publish_type == "service" || params.publish_type == "all" } } steps { withMaven(globalMavenSettingsConfig: 'bab2e7fd-587c-4284-9bd8-6b97dfeb2fab', jdk: 'jdk17', maven: 'maven396') { dir("$WORKSPACE/das") { sh 'mkdir -p "$WORKSPACE/das/src/main/resources/static"' sh 'rsync -av --delete "$WORKSPACE/ui/dasadmin/dist/" "$WORKSPACE/das/src/main/resources/static"' sh 'mvn -DskipTests -am clean package' } } } } stage('发版前端') { when { expression { params.publish_type == "ui" || params.publish_type == "all" } } steps { script { def remote = [:] remote.name = "master" remote.host = "192.168.109.195" remote.allowAnyHosts = true remote.user = "root" remote.password = "84805353" sshPut remote: remote, from: '$WORKSPACE/ui/dasadmin/dist/', into: '/das/ui/' } } } // stage('发版后端') { // when { // expression { params.publish_type == "service" || params.publish_type == "all" } // } // steps { // script { // def remote = [:] // remote.name = "master" // remote.host = "192.168.109.195" // remote.allowAnyHosts = true // remote.user = "root" // remote.password = "84805353" // sshCommand remote: remote, command: 'cd /uspcloud/usp3/ && docker compose pull services-sypower && docker compose down services-sypower && docker compose up -d services-sypower' // } // } // } } }