webhook触发jenkins进行sonar检测
目的
jenkins仅需创建一个job,git推送后自动进行sonar代码检测并上传到sonarqube
jenkins插件
已按社区推荐安装基本插件
- Generic Webhook Trigger
- SonarQube Scanner
准备工作
sonar生成令牌
登录后右上角点击"头像 > 我的账号 > 安全"
生成令牌并复制保存

将令牌添加到jenkins凭证中 “系统管理 > 管理凭证 > 添加凭证”
类型选择Secret text
令牌粘贴到Secret框中,ID及描述可自行设置成想要的

jenkins添加SonarQube Server “系统管理 > 系统配置 > SonarQube servers”
定义name及sonarqube地址,选中刚创建的凭证,点击保存(这里name我命名‘SonarQube’)

jenkins添加Sonar Scanner “系统管理 > 全局工具配置 > SonarQube Scanner”
定义name,勾选自动安装,版本选最新即可,点击保存

创建jenkins job
新建job,选择流水线
“构建触发器”选中"Generic Webhook Trigger"
- 复制http://JENKINS_URL/generic-webhook-trigger/invoke备用,作为触发地址(JENKINS_URL需替换成自己的jenkins地址)
- Post content parameters提取需要用的参数
- github如下
variable expression expressionType defaultValue regexpFilter project_name $.repository.name JSONPath ssh_url $.repository.ssh_url JSONPath ref $.ref JSONPath - gitlab如下
variable expression expressionType defaultValue regexpFilter project_name $.project.name JSONPath ssh_url $.project.git_ssh_url JSONPath ref $.ref JSONPath - 定义Token,不同token可触发不同job(若token相同则触发多个job)
定义流水线
pipeline {
agent any stages {
stage('Check Out!') {
steps {
script {
//解析分支
arr = "${env.ref}".split("refs/heads/") as List
currentBranch = arr[1]
}
git branch: currentBranch, credentialsId: '343aa12a-92a3-4797-a9ea-a8facb4db380', url: '${ssh_url}' //credentialsId为ssh私钥,用于拉git代码
}
} stage('Sonar Scan!') {
steps {
script {
sonarqubeScannerHome = tool name: 'SonarQube Scanner' //准备工作第4步的name
withSonarQubeEnv('SonarQube') { //准备工作第3步的name,只有一个时可省略
sh """
${sonarqubeScannerHome}/bin/sonar-scanner \
-Dsonar.projectKey=${project_name} \
-Dsonar.projectName=${project_name} \
-Dsonar.sources=./
"""
}
}
}
} }
}
定义webhook(github为例)
打开项目"Settings > Webhooks"
写入url及创建job第二步的token(注意token在url后)

验证
- 触发push事件后,可看到jenkins开始构建,完成后sonarqube平台也可看到相关报告
webhook触发jenkins进行sonar检测的更多相关文章
- gitlab实现webhook触发jenkins 自动,构建,测试,push webhook构子 总结
最新一直在学习 工作 + 学习 去掉 90% 所以blog 一直没更 真是很不好! exsi ceph gitlab jenkins harbor k8s docker-compose ap ...
- gitlib配置push后自动触发jenkins构建sonar扫描
jenkins所用到的插件: Gitlab Hook Plugin 配置步骤 1.先进入gitlab的个人设置,生成api token 2.复制生成的访问令牌,打开jenkins的凭据,添加选择类型是 ...
- 通过gitlab的webhook触发Jenkins自动构建设置
1.Jenkins job中勾选Build when a change is pushed to GitLab 2.Gitlab project 页面setting选择Integrations,配置w ...
- Gitlab源码库里代码提交后,如何触发jenkins自动构建?
版本库里代码提交后,如何触发jenkins自动构建?这是一个面试题,感觉自己回答的并不好,因为并没有用过这个功能,之前公司实际项目用的是svn版本管理,一般都用立刻构建,和定时任务构建(不管代码是否有 ...
- 利用GitLab webhook来实现触发Jenkins自动操作
本文针对如何设置GitLab以及Jenkins,实现每次GitLab上有提交事件的时候,都能触发Jenkins执行相应的操作,主要分为以下几个步骤: 1.新建GitLab测试用例 进入个人GitLab ...
- Jenkins集成Sonar Quabe和权限配置
目录 安装Sonar Jenkins配置sonar Maven Jenkins Job配置 Pipeline Jenkins Job配置 Sonar权限管理 Sonar quality Gate通过阈 ...
- 配置GitLab Push 自动触发Jenkins构建
配置GitLab Push 自动触发Jenkins构建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客是对之前的笔记:https://www.cnblogs.com/yin ...
- jenkins集成sonar
用于我的sonar已经在一台机器上搭建好了,但是每次都要人工去执行sonar-run,很麻烦,所以就想着集成到jenkins上,在jenkins上点点按钮就可以看sonar结果,所以很抱歉,本博客不设 ...
- 实战:向GitHub提交代码时触发Jenkins自动构建
当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建 ...
随机推荐
- [ css ] 实现漂亮的输入框动画(借鉴自panjiachen的后台管理项目)
效果预览 HTML <div class="l-custom-input"> <input size="large" id="l-i ...
- 学习Java爬虫文档的学习顺序整理
1.认识正则表达式(Java语言基础) https://www.toutiao.com/i6796233686455943693/ 2.正则表达式学习之简单手机号和邮箱练习 https://www.t ...
- vue3.0+vite+ts项目搭建-postcss-pxtorem 实现移动自适应(五)
这里不考虑大屏,所以不做amfe-flexible的配置 首先是安装依赖 yarn add postcss-loader postcss-pxtorem -D yarn add autoprefixe ...
- 下载并搭建maven环境
1.下载maven 1.在官网下载maven http://maven.apache.org/download.cgi 2.将下载maven解压.复制路径. 2.搭建maven环境 1.新建M2_H ...
- [转]浮点运算decimal.js
开发过程中免不了有浮点运算,JavaScript浮点运算的精度问题会带来一些困扰 JavaScript 只有一种数字类型 ( Number ) JavaScript采用 IEEE 754 标准双精度浮 ...
- linux开放端口关闭防火墙
linux开放端口关闭防火墙 systemctl status firewalld查看当前防火墙状态. 开启防火墙 systemctl start firewalld开放指定端口 ...
- Kotlin 协程一 —— 全面了解 Kotlin 协程
一.协程的一些前置知识 1.1 进程和线程 1.1.1基本定义 1.1.2为什么要有线程 1.1.3 进程与线程的区别 1.2 协作式与抢占式 1.2.1 协作式 1.2.2 抢占式 1.3 协程 二 ...
- json 转换C# class(用于对接api
//说明//使用场景:对接api,返回json结果,直接转换C# class//如何使用:复制下面js代码在浏览器控制台执行 ` "order_item_id": "28 ...
- k8s通过Service访问Pod
如何创建服务 1.创建Deployment #启动三个pod,运行httpd镜像,label是run:mcw-httpd,Seveice将会根据这个label挑选PodapiVersion: apps ...
- node.js和vue cli脚手架下载安装配置方法
一.node.js安装以及环境配置 1.下载vue.js 下载地址: https://nodejs.org/en/ 2.安装node.js 下载完成后,双击安装包开始安装.安装地址最好换成自己指定的地 ...