日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jenkins流水线配置

發布時間:2023/12/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins流水线配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//定義遠程服務器函數 def GetRemoteServer(ip,credentialsid){def remote = [:]remote.name = ipremote.host = ipremote.allowAnyHosts = truewithCredentials([usernamePassword(credentialsId: credentialsid, passwordVariable: 'password', usernameVariable: 'username')]) {remote.user="${username}"remote.password="${password}"}return remote }pipeline {agent any//流水線配置信息options{timestamps()buildDiscarder(logRotator(numToKeepStr:'4'))}//環境變量environment {GIT_URL=''GIT_USER_ID=''MAVEN_HOME='/home/zfb/software/apache-maven-3.6.3'SCANNER_HOME='/home/zfb/software/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/SCANNER'//開發服務器地址和賬戶DEV_SERVER_HOST=''DEV_SERVER_USER_ID=''//測試服務器地址和賬戶TEST_SERVER_HOST=''TEST_SERVER_USER_ID=''TEST_DF_PATH='/home/dockerfile/Dockerfile'IMAGE_GROUP=''//docker私有倉庫信息DOCKER_HOST=''DOCKER_USER=''DOCKER_PWD=''}//參數配置parameters{gitParameter(branch: '',branchFilter: '.*',defaultValue: 'origin/huawei-CSE-test',listSize: '10', name: 'branch',quickFilterEnabled: false,selectedValue: 'DEFAULT',sortMode: 'NONE',tagFilter: '*',type: 'PT_BRANCH_TAG')choice(choices:['common','service-ts','service-is','service-isn','service-af','service-bro','service-cm','service-fa','service-im','service-user'],name:'service')choice(choices:['dev','test'],name:'deploy_env')booleanParam(defaultValue: false, name: 'code_quality')}stages {stage('拉取代碼') {steps {checkout poll: false,scm: [$class: 'GitSCM',branches: [[name: "${params.branch}"]],extensions: [],userRemoteConfigs: [[credentialsId: "${env.GIT_USER_ID}",url: "${env.GIT_URL}"]]]}}stage('編譯打包'){steps{sh "cd ${params.service} && ${env.MAVEN_HOME}/bin/mvn clean install -Dmaven.test.skip=true"}}stage('質量檢查') {when{expression{params.code_quality}}steps {withSonarQubeEnv('sonarqube') {sh "${env.SCANNER_HOME}/bin/sonar-scanner -Dsonar.projectName=${params.service} -Dsonar.projectKey=${params.service} -Dsonar.projectBaseDir=${WORKSPACE} -Dsonar.sources=${params.service}/src -Dsonar.java.binaries=${params.service}/target"}}}stage('遠程部署') {when{expression{params.service!='common'}}steps {script{if("${params.deploy_env}"=="dev"){reserver=GetRemoteServer("${env.DEV_SERVER_HOST}","${env.DEV_SERVER_USER_ID}")sshPut remote: reserver, from: "${WORKSPACE}/${params.service}/target/${params.service}-1.0.0.jar", into: "/root/af/back/${params.service}/"sshCommand remote: reserver, command: "cd /root/af/back/${params.service} && sh -x ${params.service}.sh || true"}else if("${params.deploy_env}"=="test"){dir("${WORKSPACE}/${params.service}/target"){sh "mv ${params.service}-1.0.0.jar ${params.service}.jar"sh "sudo docker login -u ${env.DOCKER_USER} -p ${env.DOCKER_PWD} ${env.DOCKER_HOST}"sh "sudo docker build -f ${env.TEST_DF_PATH} -t ${params.service} --build-arg project=${params.service} --no-cache=true ."sh "sudo docker tag ${params.service}:latest ${env.DOCKER_HOST}/${env.IMAGE_GROUP}/${params.service}:latest;"sh "sudo docker push ${env.DOCKER_HOST}/${env.IMAGE_GROUP}/${params.service}:latest"reserver=GetRemoteServer("${env.TEST_SERVER_HOST}","${env.TEST_SERVER_USER_ID}")sshCommand remote: reserver, command: "cd /root/bms/back/shell && sh -x update.sh ${env.IMAGE_GROUP} ${params.service} || true"}}}}}} }

總結

以上是生活随笔為你收集整理的Jenkins流水线配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。