@Library("devops") _ def build = new org.devops.Build() pipeline { agent {label "build01"} options { skipDefaultCheckout true } stages { stage('Checkout') { steps { script{ // 下载代码 currentBuild.description = "BranchName: ${env.branchName}" checkout scmGit(branches: [[name: "${env.branchName}"]], extensions: [], userRemoteConfigs: [[ credentialsId: '1f5dd05c-9c82-47da-a96d-79e28bdc2377', url: "${env.srcUrl}"]]) } } } stage('Build'){ steps{ script{ //构建阶段 build.Build() } } } stage('UniTest'){ when { environment name: 'skipUnitTest',value: 'false' } steps{ script{ // 单元测试 build.UniTest() } } } stage('CodeScan'){ steps{ script{ //代码扫描 //withCredentials([usernamePassword( // credentialsId: 'be40ed93-4404-4242-a95b-25ed974be409', // passwordVariable: 'PASSWORD', // usernameVariable: 'USERNAME')]) { // sh "sonar-scanner -Dsonar.login=${USERNAME} -Dsonar.password=${PASSWORD}" //} withSonarQubeEnv(credentialsId: '4cd3f9f5-d675-4c85-b1c9-54329bed4902') { sh """ sonar-scanner -Dsonar.login=${SONAR_AUTH_TOKEN} -Dsonar.projectVersion=${env.branchName} -Dsonar.branch.name=${env.branchName} """ } } } } stage('PushArtifacts'){ steps{ script{ // 上传制品 def repoId="devops" def targetDir="devops/${JOB_NAME}/" def pkgPath="target" def POM = readMavenPom file:'pom.xml' env.artifactId = "${POM.artifactId}" env.packaging = "${POM.packaging}" env.groupId = "${POM.groupId}" env.art_version = "${POM.version}" pkgName = "${env.artifactId}-${env.art_version}.${env.packaging}" PushNexusArtifact(repoId,targetDir,pkgPath,pkgName) } } } } } def PushNexusArtifact(repoId,targetDir,pkgPath,pkgName){ withCredentials([ usernamePassword( credentialsId: '4df0140e-023c-4b64-983d-6a2054e74228', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME' ) ]) { sh """ curl -v -u ${USERNAME}:${PASSWORD} \ -X POST \ "http://192.168.0.160:8081/service/rest/v1/components?repository=${repoId}" \ -H "accept: application/json" \ -F "raw.directory=${targetDir}" \ -F "raw.asset1=@${pkgPath}/${pkgName}" \ -F "raw.asset1.filename=${pkgName}" """ } }