Jfrog 与 jenkins Sonarqube的 测试样例 (From jfrog 培训)
1. 获取jfrog 仓库地址 sonar的地址 jenkins的地址.
本次例子的地址为:
jenkins地址:http://10.24.101.99:8080/
artifactory地址: http://10.24.101.99:8081/artifactory
sonar的地址:http://10.10.9.36:9000/
sonar自己一会儿安装一个
2. 进行配置,首先在 系统管理-系统设置 中增加sonar的服务器的地址
如图示:
服务器session的值为:
ffb8d267e6f0eb2fdbbcabbb097cebb0b7fbaa76

3 在系统管理-全局工具配置中 增加sonarqube的值
这一块 需要与 groovy中的脚本关联起来 才可以用.

4. 设置完成之后 创建 pipeline
与上面一个 基本相同.

将测试用的脚本放进去 ,并且取消掉 沙盒运行
import groovy.json.JsonOutput
import groovy.json.JsonSlurperClassic node {
def server = Artifactory.newServer url: SERVER_URL, credentialsId: CREDENTIALS
def rtMaven = Artifactory.newMavenBuild() stage 'Build'
git url: 'https://github.com/wj20160308/project-examples.git' stage 'Artifactory configuration' rtMaven.tool = MAVEN_TOOL // Tool name from Jenkins configuration
rtMaven.deployer releaseRepo:'zhaobsh_mvn_release_local', snapshotRepo:'zhaobsh_mvn_snapshot_local', server: server
rtMaven.resolver releaseRepo:'libs-release', snapshotRepo:'libs-snapshot', server: server
rtMaven.deployer.addProperty("unit-test", "pass").addProperty("qa-team", "platform", "ui")
def buildInfo = Artifactory.newBuildInfo()
buildInfo.env.capture = true stage 'Exec Maven'
rtMaven.run pom: 'maven-example/pom.xml', goals: 'clean install', buildInfo: buildInfo stage 'sonar'
def scannerHome = tool 'sonarqube'; withSonarQubeEnv('sonar') {
echo "${scannerHome}" sh "${scannerHome}/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.projectName=${JOB_NAME} -Dsonar.projectVersion=${BUILD_NUMBER} -Dsonar.sources= "
//sh "mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar"
} stage 'Publish & Scan' manager.envVars['RELEASE_VERSION'] = RELEASE_VERSION ;
def releaseVersion = RELEASE_VERSION;
def warVersion = releaseVersion;
manager.listener.logger.println(manager.envVars['RELEASE_VERSION'] ); def curlstr="curl -uadmin:AKCp5aUjBmuJPiBcGcjvYDWi7jrgWESiMyKKw1qb28aevmeZoSYWPNg8tkZyUzZyZF5RxyNL5 \'http://10.10.9.33/artifactory/"
def warverstr= curlstr + "api/search/latestVersion?g=org.jfrog.test&a=multi3&repos=wangj-snapshots-local&v=${releaseVersion}\'";
echo warverstr
warVersion = ["bash","-c",warverstr].execute().text
echo warVersion //获取sonar扫描结果
def getSonarIssuesCmd = "curl GET -v http://10.10.9.36:9000/api/issues/search?componentRoots=${JOB_NAME}";
echo getSonarIssuesCmd
process = [ 'bash', '-c', getSonarIssuesCmd].execute().text //增加sonar扫描结果到artifactory
echo process
//def issueMap = jsonSlurper.parseText(process);
def issueMap = jsonParse(process);
commandText = "curl -X PUT \"http://10.10.9.33/artifactory/api/storage/wangj-snapshots-local/org/jfrog/test/multi3/"+releaseVersion+"-SNAPSHOT/multi3-"+releaseVersion + warVersion+".war?properties=qulity.gate.sonarUrl=http://47.93.114.82:9000/dashboard/index/jfrog:multi3;qulity.gate.sonarIssue="+issueMap.total+"\" -uadmin:AKCp5aUjBmuJPiBcGcjvYDWi7jrgWESiMyKKw1qb28aevmeZoSYWPNg8tkZyUzZyZF5RxyNL5"; echo commandText
process = [ 'bash', '-c', commandText].execute().text step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
if (reportOnTestsForBuild ()) {
currentBuild.result = 'UNSTABLE'
}
server.publishBuildInfo buildInfo
} @NonCPS
def reportOnTestsForBuild () {
def failedTests = []
def build = manager.build
if (build.getAction(hudson.tasks.junit.TestResultAction.class) == null) {
println "No Tests"
return true
}
def result = build.getAction(hudson.tasks.junit.TestResultAction.class).result
if ((result == null)) {
println "No test results"
return true
} else {
println "Failed test count: " + result.getFailCount()
println "Passed test count: " + result.getPassCount()
failedTests = result.getFailedTests()
failedTests.each { test ->
println test.name
}
return (result.getFailCount())
}
}
@NonCPS
def jsonParse(def json) {
new groovy.json.JsonSlurperClassic().parseText(json) }
放置位置

选择 参数化 构建过程

增加参数 与后面的groovy脚本对应
首先增加 artifactory 的地址

增加的参数为:

以及进行 MAVEN_TOOL的设置

进行添加

后续还要添加的参数有
sonarqube 值就为 刚才设置的系统设置变量名字
RELEASE_VERSION 定义一个任意数据即可
进行处理即可.
这里需要在aritifactory 中创建 仓库 比较简单 上一个blog中 已经说明过了. 不在阐述.
Jfrog 与 jenkins Sonarqube的 测试样例 (From jfrog 培训)的更多相关文章
- hdu 1003 MAX SUM 简单的dp,测试样例之间输出空行
测试样例之间输出空行,if(t>0) cout<<endl; 这样出最后一组测试样例之外,其它么每组测试样例之后都会输出一个空行. dp[i]表示以a[i]结尾的最大值,则:dp[i ...
- YOLOv4 资源环境配置和测试样例效果
YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...
- PAT 1032 挖掘机技术哪家强(20)(有测试样例)
1032 挖掘机技术哪家强(20)(20 分) 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第1行给出不超过10 ...
- PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
- MapReduce计算每年最大值测试样例生成程序
Demo.java package com.java; import java.io.BufferedWriter; import java.io.File; import java.io.FileW ...
- 第一次个人项目【词频统计】——测试样例分析&性能分析
[空文件测试](认为空文件行数为0) [基本测试] [大小写测试] 可以看出abcd同类型的词出现了三次,而单词树中存储的是ABCd,满足大小写要求. [复杂文件测试] 前三项数据比较接近,但是单词和 ...
- 不同标准下的C语言常量范围的默认类型的检测 (测试样例为C90与C99)
不同标准下的C语言常量范围的默认类型的检测 一.C90与C99标准下的不同常量范围的默认类型 C90标准下对不同常量范围默认类型的检测实现及运行结果: C99标准下对不同范围默认类型的检测实现 ...
- Swift - 加速传感器(CoreMotion)的用法,小球加速运动并反弹样例
1,加速传感器可以监听到x,y,z三个方向的加速度,使用步骤如下: (1)实例化CMMotionManager类 (2)向CMMotionManager的accelerometerUpdateInte ...
- Relation Extraction中SVM分类样例unbalance data问题解决 -松弛变量与惩罚因子
转载自:http://blog.csdn.net/yangliuy/article/details/8152390 1.问题描述 做关系抽取就是要从产品评论中抽取出描述产品特征项的target短语以及 ...
随机推荐
- Coprime (单色三角形+莫比乌斯反演(数论容斥))
这道题,先说一下单色三角形吧,推荐一篇noip的论文<国家集训队2003论文集许智磊> 链接:https://wenku.baidu.com/view/e87725c52cc58bd631 ...
- (6)sudo命令详解(每周一个linux命令系列)
首先说句抱歉,最近事情比较复杂,停更了一阵子.我又回来啦 多用户管理 我们常用的windows个人系统虽然可以设置多用户,但是实际上是不可以多用户同时登陆的(这个我实验过,我以前用windows服务器 ...
- VsCode之使用WebView通信
之前我在这篇文章VsCode插件开发之插件初步通信 通过插件完成通信,这回我还是通过插件,只不过方式主要以在ts文件里面使用webview来进行通信. 另外在此声明,一定要好好看仔细看官方文档,国内关 ...
- 单例模式和JDBC
配置文件: driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/blog user=root user=1234 properti ...
- python对word的操作
from docx import Document from docx.shared import Inches document = Document() document.add_heading( ...
- js深度克隆对象
js深度克隆对象 js深度克隆对象简单的记录一下,如下代码: var obj = { typeOf: function(obj) { const toString = Object.prototype ...
- PAT A1155 Heap Paths (30 分)——完全二叉树,层序遍历,特定dfs遍历
In computer science, a heap is a specialized tree-based data structure that satisfies the heap prope ...
- 在 Virtual Box 安装 Mac Os 并安装 Qt 开发应用
导读 由于 Beslyric-for-X 项目开发需要,开始尝试在 Mac Os 下开发 Qt 应用.尝试成功后,记录于此,希望对有类似需求的人有所帮助. 本文以开发 Beslyric-for-X 为 ...
- TerraExplorer Add-ons 和TEZ使用说明
1. 概述 Skyline提供了丰富的API,用户可以根据不同实际需求,进行二次开发封装,实现各种功能的扩展和定制.当我们开发了各种功能页面或者应用程序后,如何将它们快速嵌入到TerraExpl ...
- C#析构函数 (转载)
一.C#析构函数 1. 析构函数的定义与注意的问题析构函数用于释放被占用的系统资源.析构函数的名字由符号“-”加类名组成.使用析构函数时,应该注意下面的问题: 只能在类中使用析构函数,不能在结构中使用 ...