pipeline { agent any environment { CREDENTIALS_ID ="jqtx-git" APPLICATION_URL="ssh://git@gitlab.jqtianxia.cn:2222/zhanhai/windows.git" APPLICATION_NAME = 'windows' APPLICATION_PORT = '8432' ENV_NAME = "prod" APPLICATION_SERVER_NAME='datagateway-1,' DOCKER_REGISTER = 'docker-rep-registry-vpc.cn-hangzhou.cr.aliyuncs.com' HARBOR_PROJECT ='prod' HARBOR_USER='BlackJoker@1907867481722754' HARBOR_PASSWORD='EYzYqxMZYfEwBB6Z' XXL_PORT= '9432' } stages { stage("Env Variables") { steps { sh "printenv" } } stage ("拉取代码"){ steps{ script { env.VERSION="${env.GIT_COMMIT}".substring(0,8) env.PORT = "${env.APPLICATION_PORT}" checkout([$class: 'GitSCM', branches: [[name: "${GIT_BRANCH}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId:"${CREDENTIALS_ID}", url: "${APPLICATION_URL}"]]]) sh "echo BRANCH is : ${env.GIT_BRANCH}" sh "echo Build Version : ${env.VERSION}" sh "echo Env name is : ${env.ENV_NAME}" sh "echo Port is : ${env.PORT}" } } } stage ('构建'){ steps { sh "/opt/apache-maven-3.8.1/bin/mvn clean package -DskipTests=true docker:build" } } stage("发布镜像") { steps { script{ sh "docker login -u ${env.HARBOR_USER} -p ${env.HARBOR_PASSWORD} ${env.DOCKER_REGISTER}" env.DOCKER_IMAGES_NAME = "${env.DOCKER_REGISTER}/${env.HARBOR_PROJECT}/${APPLICATION_NAME}:${env.VERSION}" sh "docker tag ${env.APPLICATION_NAME} ${env.DOCKER_IMAGES_NAME}" sh "docker push ${env.DOCKER_IMAGES_NAME}" sh "docker rmi ${env.APPLICATION_NAME}:latest" } } } stage("推送远程服务器") { steps { script{ def list=env.APPLICATION_SERVER_NAME.split(',') for(i in list ){ println "启动参数 ${DOCKER_REGISTER} ${HARBOR_PROJECT} ${APPLICATION_NAME} ${VERSION} ${APPLICATION_PORT} ${XXL_PORT}" println "${i}" // 生产环境禁用 sshPublisher(publishers: [sshPublisherDesc(configName: i, transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "sh /root/coeus/docker.sh ${DOCKER_REGISTER} ${HARBOR_PROJECT} ${APPLICATION_NAME} ${VERSION} ${APPLICATION_PORT} ${XXL_PORT}", execTimeout: 0, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '*', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '/root/coeus/dd')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) } } } } } }