持续集成交付CICD:Jenkins使用GitLab共享库实现自动更新前后端项目质量配置

目录

一、实验

1.Jenkins使用GitLab共享库实现自动更新后端项目质量配置

2.Jenkins使用GitLab共享库实现自动更新前端项目质量配置

二、问题

1.Sonarqube如何添加自定义质量阈


一、实验

1.Jenkins使用GitLab共享库实现自动更新后端项目质量配置

(1)修改GitLab的Sonar.groovy

(2) 配置文件并提交

package org.devopsdef SonarRequest(apiUrl,method){withCredentials([string(credentialsId: "855da77c-ad38-4f06-a941-3a5afcf6bbc6", variable: 'SONAR_TOKEN')]) {sonarApi = "http://192.168.204.8:9000/api"response = sh returnStdout: true,script: """curl --location \--request ${method} \"${sonarApi}/${apiUrl}" \--header "Authorization: Basic ${SONAR_TOKEN}""""// json格式化try {response = readJSON text: """ ${response - "\n"} """} catch(e){response = readJSON text: """{"errors" : true}"""}return response}
}//查找项目
def SearchProject(projectName){apiUrl = "projects/search?projects=${projectName}"response = SonarRequest(apiUrl,"GET")if (response.paging.total == 0){return false}return true}//创建项目
def CreateProject(projectName){apiUrl = "projects/create?name=${projectName}&project=${projectName}"response = SonarRequest(apiUrl,"POST")try{if (response.project.key == projectName ) {println("Project Create success!...")return true}}catch(e){println(response.errors)return false}
}// 更新质量阈
def UpdateQualityProfiles(lang, projectName, profileName){apiUrl = "qualityprofiles/add_project?language=${lang}&project=${projectName}&qualityProfile=${profileName}"response = SonarRequest(apiUrl,"POST")if (response.errors != true){println("ERROR: UpdateQualityProfiles ${response.errors}...")return false} else {println("SUCCESS: UpdateQualityProfiles ${lang} > ${projectName} > ${profileName}" )return true}
}def SonarJava(projectName,groupName){withCredentials([string(credentialsId: '9a684e00-bc7b-4335-916f-1dfb0b1688fa', variable: 'AUTH_TOKEN')]) {sh """/opt/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner -Dsonar.host.url=http://192.168.204.8:9000 \-Dsonar.projectKey=${projectName} \-Dsonar.projectName=${projectName} \-Dsonar.projectVersion=${BUILD_ID} \-Dsonar.login=${AUTH_TOKEN} \-Dsonar.ws.timeout=30 \-Dsonar.projectDescription="my first project" \-Dsonar.links.homepage=http://192.168.204.8:82/${groupName}/${projectName} \-Dsonar.links.ci=http://192.168.204.15:8080/job/${groupName}/job/${projectName}/ \-Dsonar.sources=src \-Dsonar.sourceEncoding=UTF-8 \-Dsonar.java.binaries=target/classes \-Dsonar.java.test.binaries=target/test-classes \-Dsonar.java.surefire.report=target/surefire-reports"""}
}def SonarWeb(projectName,groupName){withCredentials([string(credentialsId: '9a684e00-bc7b-4335-916f-1dfb0b1688fa', variable: 'AUTH_TOKEN')]) {sh """/opt/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner -Dsonar.host.url=http://192.168.204.8:9000 \-Dsonar.projectKey=${projectName} \-Dsonar.projectName=${projectName} \-Dsonar.projectVersion=${BUILD_ID} \-Dsonar.login=${AUTH_TOKEN} \-Dsonar.ws.timeout=30 \-Dsonar.projectDescription="my first project" \-Dsonar.links.homepage=http://192.168.204.8:82/${groupName}/${projectName} \-Dsonar.links.ci=http://192.168.204.15:8080/job/${groupName}/job/${projectName}/ \-Dsonar.sources=src \-Dsonar.sourceEncoding=UTF-8 \"""}
}//Main
def CodeSonar(type,projectName,groupName){if (SearchProject(projectName)){println("${projectName} exist")} else {//项目不存在println("${projectName} not fonud")//创建项目CreateProject(projectName)}//质量配置profileMap = ["maven":"java","npm": "js"]UpdateQualityProfiles(profileMap[type], projectName,groupName)switch(type){case "maven":SonarJava(projectName,groupName)break;case "gradle":SonarJava(projectName,groupName)break;case "npm":SonarWeb(projectName,groupName)break;default:println("No such tools ... [maven/ant/gradle/npm/yarn/go]")break}
}

(3)Jenkins手动构建后端项目流水线

(4)Blue Ocean 查看

(5)查看日志

(6)maven项目使用的质量阈为devops03

(7) Sonarqube 已新增项目

2.Jenkins使用GitLab共享库实现自动更新前端项目质量配置

(1)Sonarqube给前端项目添加质量配置

(2)根据需求添加

(3)显示已增加

(4)Jenkins手动构建前端项目流水线

(5)Blue Ocean 查看

(6)查看日志

(7)npm项目使用的质量阈为devops03

(8) Sonarqube 已新增项目

二、问题

1.Sonarqube如何添加自定义质量阈

(1)创建

(2)添加条件

(3)完成

(4)添加项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bert其他内容个人记录

Pre-training a seq2seq model BERT只是一个预训练Encoder,有没有办法预训练Seq2Seq模型的Decoder? 在一个transformer的模型中,将输入的序列损坏,然后Decoder输出句子被破坏前的结果,训练这个模型实际上是预训练一个…

【LeetCode刷题】-- 79.单词搜索

79.单词搜索 方法:使用回溯 使用dfs函数表示判断以网格的(i.j)位置出发,能否搜索到word(k),其中word(k)表示字符串word从第k个字符开始的后缀子串,如果能搜索到,返回true,反之返回false 如果board[i][j]≠word[k]&am…

Netty线程模型

Netty线程模型 Netty中两个线程池, 分别是BossGroup和WorkGroup, 线程模型如下图所示: 模型解释: Netty 抽象出两组线程池BossGroup和WorkerGroup,BossGroup专门负责接收客户端的连接, WorkerGroup专门负责网络的读写BossGroup和WorkerGr…

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用 1. 直接上代码(复制可直接用,请根据自己的文件修改引用地址,图表只是简单封装,可根据自身功能,进行进一步配置。) …

springcloud多环境部署打包 - maven 篇

背景 在使用 springboot 和sringcloudnacos开发项目过程中,会有多种环境切换,例如开发环境,测试环境,演示环境,生产环境等,我们通过建立多个 yml 文件结合 profiles.active 属性进行环境指定,但…

k8s 安装 Longhorn

Longhorn 的 helm 模板官网地址:Longhorn 加入仓库 helm repo add longhorn https://charts.longhorn.iohelm repo update开始部署 helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace --version 1.5.3检查pod运行状态是…

2023_Spark_实验二十七:Linux中Crontab(定时任务)命令详解及使用教程

Crontab介绍: Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ…

【桑基图】绘制桑基图

绘制桑基图 一、绘制桑基图(1)方法一:去在线网站直接绘制(2)方法二:写html之后在vscode上运行 二、遇到的问题(1)当导入一些excel的时候,无法绘制出桑基图 一、绘制桑基图…

用23种设计模式打造一个cocos creator的游戏框架----(三)外观模式模式

1、模式标准 模式名称:外观模式 模式分类:结构型 模式意图:为一组复杂的子系统提供了一个统一的简单接口。这个统一接口位于所有子系统之上,使用户可以更方便地使用整个系统。 结构图: 适用于: 当你想为…

Nginx的安装、升级和管理

目录 一. nginx介绍 1. nginx简介 2. nginx和apache区别 二. nginx编译安装 1. 下载解压nginx安装包,并安装nginx依赖包 2. 创建运行用户和组 3. 编译安装并补全 4. 效验结果 三. 平滑升级nginx 1. 下载解压nginx安装包 2. 编译安装 3. 替换二进制文件 …

SpringMvc入坑系列(一)----maven插件启动tomcat

springboot傻瓜式教程用久了,回过来研究下SSM的工作流程,当然从Spring MVC开始,从傻瓜式入门处理请求和页面交互,再到后面深入源码分析。 本人写了一年多的后端和半年多的前端了。用的都是springbioot和vue,源码一直来…

机器学习实验六:聚类

系列文章目录 机器学习实验一:线性回归机器学习实验二:决策树模型机器学习实验三:支持向量机模型机器学习实验四:贝叶斯分类器机器学习实验五:集成学习机器学习实验六:聚类 文章目录 系列文章目录一、实验…

持续集成交付CICD: Sonarqube REST API 查找与新增项目

目录 一、实验 1.SonarQube REST API 查找项目 2.SonarQube REST API 新增项目 一、实验 1.SonarQube REST API 查找项目 (1)Postman测试 转换成cURL代码 (2)Jenkins添加凭证 (3)修改流水线 pipeline…

node切换版本

可打开黑窗口来进行命令输入操作: 1. node -v :查看当前版本 2.nvm list :查看已经下载的版本 3.nvm list available查看可用的node.js版本号: 4.nvm install node版本号(例如:nvm install 12.17.0)即可安装对应版本以及自动安装…

某60内网渗透之跨平台横向移动【windows计划任务利用】

内网渗透 文章目录 内网渗透跨平台横向移动【windows计划任务利用】实验目的实验环境实验工具实验原理实验内容跨平台横向移动[windows计划任务利用] 实验步骤针对 WindowsXP/2003 的利用方式(at命令)针对 Windows Vista 及以上版本的利用方式(schtasks命令)跨平台横向移动…

轻快小miniconda3在linux下的安装配置-centos9stream-Miniconda3 Linux 64-bit

miniconda与anaconda的区别: Miniconda 和 Anaconda 是用于管理环境和安装软件包的 Python 发行版。它们之间的主要区别在于以下几点: 1. 安装内容和大小: Anaconda: Anaconda 是一个完整的 Python 数据科学平台,包含…

easyui实现省市县三级联动

一、技术: 前端采用的是easyui+jquery+jsp页面 后端采用springmvc+mybatis+mysql8 效果图 二、cascadeEasyui.jsp页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContex…

wait notify

文章目录 1. API 介绍2. 怎么使用wait、notify2.1 sleep 和 wait 的区别2.2 sleep 和 wait 的使用模板 1. API 介绍 都属于 Object 对象的方法。必须获得此对象的锁&#xff0c;才能调用这几个方法&#xff0c;只有重量级锁才能调用wait、notify obj.wait() 让进入 object 监…

vue中实现数字+英文字母组合键盘

完整代码 <template><div class"login"><div click"setFileClick">欢迎使用员工自助终端</div><el-dialog title"初始化设置文件打印消耗品配置密码" :visible.sync"dialogSetFile" width"600px&quo…

持续集成交付CICD:Sonarqube自动更新项目质量配置

目录 一、实验 1.Sonarqube手动自定义质量规则并指定项目 2.Sonarqube自动更新项目质量配置 一、实验 1.Sonarqube手动自定义质量规则并指定项目 &#xff08;1&#xff09;自定义质量规则 ①新配置 ②更多激活规则③根据需求激活相应规则④已新增配置 ⑤ 查看 &#x…