1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| pipeline { agent { label 'slave-mix' } options { timestamps() } environment { PATH = "PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin" } parameters { } stages { stage('perpare') { steps { echo "check harbor program" script { retry(3) { response = httpRequest httpMode: 'GET', url: "http://${params.autoUrl}/create/${params.DeployEnv}", validResponseCodes: "100:511", ignoreSslErrors: true, contentType: 'APPLICATION_JSON_UTF8' if (response.status != 200) { echo "访问失败,正在重试..." sleep(5000) sh "exit 1" } else { sh "exit 0" } } } } } stage('buildAndPush') { environment { NEW_JOB_NAME = sh(script: "echo ${env.JOB_NAME} | awk -F \"/\" '{print \$2}'", returnStdout: true).trim() IMAGE_NAME = "${params.harborUrl}/${params.DeployEnv}/${params.ApplicationName}:${params.BUILD_TIMESTAMP_1}" OLD_JOB_NAME = sh(script: "echo ${params.maven_build_job_name} | awk -F \"/\" '{print \$2}'", returnStdout: true).trim() robot_name = sh(script: "ls /code/secrets | grep ${params.DeployEnv} | awk -F \".\" '{print \$1}' | sed 's/\\\$/\\\\\$/g' | base64", returnStdout: true).trim() robot_name_1 = sh(script: "ls /code/secrets | grep ${params.DeployEnv} | awk -F \".\" '{print \$1}' | sed 's/\\\$/\\\\\$/g'", returnStdout: true).trim() robot_passwd = sh(script: "cat /code/secrets/${robot_name_1}.log | grep 'robotSecret' | awk -F \":\" '{print \$2}' | base64", returnStdout: true).trim() Maven_PATH = sh(script: "echo ${env.WORKSPACE}/${params.ProjectName}/${params.ApplicationDirName}/target | sed 's/${NEW_JOB_NAME}/${OLD_JOB_NAME}/g'", returnStdout: true).trim() Docker_PATH = sh(script: "echo ${env.WORKSPACE}/${params.ProjectName}/${params.ApplicationDirName}/target/docker_build | sed 's/${NEW_JOB_NAME}/${OLD_JOB_NAME}/g'", returnStdout: true).trim() } steps { echo "clean up history image" sh "/bin/bash /code/cleanImage.sh ${params.harborUrl}" echo "start build ${env.IMAGE_NAME} image" script { docker.build("${env.IMAGE_NAME}","-f ${env.Docker_PATH}/${params.DockerFileName} ${env.Docker_PATH}") } echo "start push ${env.IMAGE_NAME} image" script { docker.withRegistry("https://${params.harborUrl}", "${params.DeployEnv}") { docker.image("${env.IMAGE_NAME}").push() } } echo "send msg into program.packet" sh "cd ${env.Maven_PATH} && mkdir -p ${params.ApplicationName}/container && echo 'robotName@-@${env.robot_name}\nrobotPassword@-@${env.robot_passwd}\nimageName@-@${env.IMAGE_NAME}' > ${params.ApplicationName}/container/docker_build.log && zip ${env.Maven_PATH}/${params.ApplicationFileName} -r ${params.ApplicationName}/container/docker_build.log && rm -rf ${params.ApplicationName}" } } } }
|