node('backend-jnlp') { stage('Clone') { echo "1.Clone Stage" checkout scm script { build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim() // if (env.BRANCH_NAME != 'master') { // build_tag = "${env.BRANCH_NAME}-${build_tag}" // } } } stage('Test') { echo "2.Test Stage" } stage('Build docker image') { echo "3.Build Docker Image Stage" sh "pwd" sh "ls -l" sh "/mnt/nfses/mavenDatas/bin/mvn clean package" sh "docker build -t 120.78.76.88/test/backend-demo:${build_tag} ." } stage('Push') { echo "4.Push Docker Image Stage" withCredentials([usernamePassword(credentialsId: 'harbor', passwordVariable: 'harborPassword', usernameVariable: 'harborUser')]) { sh "docker login -u ${harborUser} -p ${harborPassword} 120.78.76.88" sh "docker push 120.78.76.88/test/backend-demo:${build_tag}" } } stage('YAML') { echo "5. Change YAML File Stage" //def userInput = input( // id: 'userInput', // message: 'Choose a deploy environment', // parameters: [ // [ // $class: 'ChoiceParameterDefinition', // choices: "Dev\nQA\nProd", // name: 'Env' // ] // ] //) //echo "This is a deploy step to ${userInput.Env}" sh "sed -i 's//${build_tag}/' k8s.yaml" //sh "sed -i 's//${env.BRANCH_NAME}/' k8s.yaml" } stage('Deploy') { echo "6. Deploy Stage" //if (userInput.Env == "Dev") { // deploy dev stuff //} else if (userInput.Env == "QA"){ // deploy qa stuff //} else { // deploy prod stuff // input "确认要部署线上环境吗?" //} sh "kubectl apply -f k8s.yaml" } }