gitlab触发jenkins任务,pipeline获取参数执行单元测试,sonar扫描的写法

1.查看环境变量的参数
sh ‘printenv’
注意,自己在环境变量中增加的值,也可以在这个打印中看到
2.获取参数值
使用${env.参数}
3.git的连接使用HTTP的参数
这样在jenkins中配置了用户之后,不需要再写用户名与密码

import groovy.json.JsonSlurper;
import java.text.SimpleDateFormat;

pipeline {
    agent any

    environment {
        DISABLE_AUTH = 'true'
        DB_ENGINE    = 'sqlite'
        
        ipaddress = 'http://*.*.*.*:'
        // sonar的名称初始化
        keeName="${env.gitlabTargetRepoName}-${env.gitlabSourceBranch}"
       
    }

    stages {
        stage('Build') {
            steps {
				// 查看环境变量中的参数
                sh 'printenv'
            }
        }
        stage('clean workspace') {
            steps {
                sh 'rm -rf ./*'
            }
        }
        // 代码编译
        stage('Pre-Compile') {
            steps {
                git branch: "${env.gitlabSourceBranch}", credentialsId: '***', url: "${env.gitlabSourceRepoHttpUrl}"
                sh 'mvn clean package -Dmaven.test.skip=true'
            }
            post {
                failure {
                    mail (
                        to: "${env.gitlabUserEmail}",
                        subject:"FAILURE Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'", 
                        body:"FAILURE \n 项目名:${env.JOB_NAME}\n 构建ID: ${env.BUILD_NUMBER}\n 输出:${env.BUILD_URL}console"
                    )
                }
            }
        }
        // 单元测试
        stage('Unit-Test'){
            steps
            {
                script
                {
                	catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') 
                	{
                	    sh 'mvn install'
                		sh 'mvn test'
                        junit allowEmptyResults: true, testResults: "**/target/surefire-reports/*.xml"
                	}
                }
            }
            post{
                failure{
                    mail (
                        to: "${env.gitlabUserEmail}",
                        subject:"FAILURE: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'", 
                        body: "FAILURE \n 项目名:${env.JOB_NAME}\n 构建ID: ${env.BUILD_NUMBER}\n 输出:${env.BUILD_URL}console"
                    )
                }
            }
         }
        
        // Sonar
        stage('Scan-Code'){
            steps{
                script{
                    sh "mvn sonar:sonar -Dsonar.host.url=${ipaddress}9000/sonarqube -Dsonar.login=****** -Dsonar.projectName=${env.gitlabTargetRepoName} -Dsonar.projectKey=${env.gitlabTargetRepoName} -Dsonar.projectVersion=${env.gitlabSourceBranch}"
                }
            }
             post{
                success{
                    mail (
                        to:"${env.gitlabUserEmail}",
                        subject:"SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
                        body:"SUCCESSFUL\n \t项目名:${env.JOB_NAME}\n \t构建ID: ${env.BUILD_NUMBER}\n \t输出:${env.BUILD_URL}console\n \tsonarqube:${ipaddress}9000/sonarqube/dashboard?id=${keeName}\n \tjacoco:${ipaddress}8080/job/${env.JOB_NAME}/${env.BUILD_NUMBER}/jacoco\n \tJunit:${ipaddress}8080/job/${env.JOB_NAME}/${env.BUILD_NUMBER}/testReport"
                    )
                }   
            }
        }
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值