def getHost(){ def remote = [:] remote.name = 'eip' remote.host = '10.6.1.50' remote.user = 'root' remote.port = 22 remote.password = '120962839' remote.allowAnyHosts = true return remote } pipeline{ agent any parameters { choice( description: 'EIP环境', name: 'environment', choices: ['dev1'] ) choice( description: '执行操作(发布|回滚)', name: 'operation', choices: ['develop', 'rollback'] ) choice( description: '是否下载包', name: 'isDownloadPackage', choices: ['是','否'] ) string( name: 'tag', defaultValue: '', description: '版本tag' ) } stages { stage('Prepare') { steps { script{ echo "1.Prepare Stage" echo "当前环境${params.environment}" if(params.operation=='develop') { 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}" } } } else{ build_tag="${params.tag}" } } } } stage('Test') { steps { script{ echo "2.Test Stage" } } } stage('Build') { steps { script{ echo "3.Build Docker Image Stage" if(params.operation=='develop') { nodejs("nodejs") { } if(params.isDownloadPackage=='是') { sh "npm install --unsafe-perm=true --allow-root" sh "rm -rf ./dist/*" sh "npm run build" } sh "docker build -t 10.2.1.24:10242/bpa/kitchenweb:${build_tag} ." } } } } stage('Push') { steps { script{ echo "4.Push Docker Image Stage" withCredentials([usernamePassword(credentialsId: 'harbor', passwordVariable: 'harborPassword', usernameVariable: 'harborUser')]) { sh "docker login -u ${harborUser} -p ${harborPassword} 10.2.1.24:10242" if(params.operation=='develop') { sh "docker push 10.2.1.24:10242/bpa/kitchenweb:${build_tag}" } } } } } stage('Deploy') { steps { script{ echo "5. Deploy Stage" // server = getHost() // sshCommand remote: server, command: """ // /root/eip/web/shell/linux-eipweb.install.sh eipweb ${build_tag} 80 // """ sh "sed -i 's//${build_tag}/' k8s_kitchenweb.yaml" sh "sed -i 's//${env.BRANCH_NAME}/' k8s_kitchenweb.yaml" sh "sed -i 's//${params.environment}/' k8s_kitchenweb.yaml" sh "kubectl apply -f k8s_kitchenweb.yaml --record" } } } } }