• 欢迎来到本博客,希望可以y一起学习与分享

集成gitlab、Jenkins与Sonar实现代码自动检查

笔记 benz 来源:集成gitlab、Jenkins与Sonar实现代码自动检查 2年前 (2019-11-07) 23次浏览 0个评论 扫描二维码
文章目录[隐藏]

前言

在项目的开发过程中,为了保证代码的质量便于后期的代码维护,需要遵循统一的代码规范。但是通过人工逐一查看代码去检查费时费力,使用jenkins结合sonar可以实现代码的自动检查。
本文中自动分析过程大致为以下步骤:

  1. 提交java项目代码至gitlab
  2. gitlab通过webhook自动触发jenkins执行任务
  3. jenkins获取代码,执行sonar分析代码。
  4. 在sonar的服务器界面查看分析结果

下面的示例中,jenkins版本为2.121.3,gitlab版本为10.0.2-ce,SonarQube版本为7.4,如果使用的版本不一致可能会有部分设置差异。

安装部署

部署jenkins

这里采用docker的方式部署jenkins。
Jenkins

部署SonarQube

这里采用docker的方式部署SonarQube。
Sonar

配置jenkins任务

安装sonar插件,并创建jenkins任务。

jenkins中安装sonar插件

jenkins中要实现代码扫描,需要在jenkins中安装SonarQube Scanner插件。从jenkins的“系统管理”-“管理插件”中找到SonarQube Scanner插件并下载安装,重启jenkins后生效。

jenkins中配置sonar插件

在jenkins中,进入“系统管理”-“系统设置”-“SonarQube servers”配置。勾上“Enable injection of SonarQube server configuration …”选项,输入“Name”、“Server URL”以及“Server authentication token”。token为前面部署sonarqube服务器时创建的token。

进入“系统管理”-“全局工具配置”-“SonarQube Scanner”,点击“SonarQube Scanner 安装”并配置SonarQube Scanner。

测试jenkins任务

在创建的jenkins任务中,点击“立即构建”即可立即执行sonar任务。

执行成功后,打开sonarqube的地址,即可看到代码检查结果。

设置gitlab自动触发jenkins

前面的步骤中已经完成了手动执行jenkins执行sonar任务完成构建部署任务,下面说明如何在代码提交后让gitlab自动触发jenkins执行sonar任务。

jenkins中安装gitlab插件

要实现gitlab自动触发jenkins任务,需要在jenkins中安装gitlab插件。从jenkins的“系统管理”-“管理插件”中找到gitlab插件并下载安装,重启jenkins后生效。

在gitlab中创建访问token

安装的gitlab插件在配置时,需要gitlab的访问token,先要在gitlab中创建访问的token。点击“用户设置”-“Access Tokens”菜单,进入访问token设置界面。然后输入“Name”,并在“Scopes”中勾选“api”,点击“Create …”按钮即可创建访问token。创建成功后,一定要将生成的token保存下来,后面将无法再查看生成的token,如果未保存后面只能重新生成。

jenkins中配置gitlab插件

在jenkins中,进入“系统管理”-“系统设置”-“Gitlab”配置。

输入“Connection name”、“Gitlab host URL”,在“Credentials”中点击“Add”添加gitlab的授权token。

点击添加后,会进入添加凭据界面。在添加界面,选择类型为“GitLab API token”,API token设置为前面在gitlab中创建的token值。然后点击“添加”按钮创建凭据。

添加完gitlab api token,在Gitlab设置界面“Credentials”中选择前面添加的token,然后点击“Test Connection”测试是否成功。测试成功后保存。

配置jenkins任务,启用触发器

进入jenkins的任务设置界面,在“构建触发器”中,勾上“Build when a change pushed to Gitlab.Gitlab webhook URL …”(这里的webhook URL在后面配置gitlab时需要),根据自己的需要设置其它的选项。点击“高级”按钮,然后点击“Generate”按钮生成Secret token(这里的token后面配置gitlab时需要)。

在gitlab中配置webhook

在gitlab的项目设置中选择“Integrations”,然后在URL和Secret token中填入上一步jenkins设置中的到的内容。由于每次代码提交到gitlab后都触发jenkins执行任务,所以这里勾选“Push events”,然后去掉“Enable SSL verification”的勾选项,并点击“Add webhook”按钮添加。

webhook测试

添加完成后,在下面可以看到刚才添加的webhook,点击“Test”按钮在弹出的菜单中选择“Push events”发送测试请求,发送成功后会显示“Hook executed successfully”信息。


webhook发送成功后,到jenkins中可以看到正在执行触发的任务。配置成功后,后面只要有git的tag提交到gitlab即可直接触发jenkins执行sonar任务。


文章 集成gitlab、Jenkins与Sonar实现代码自动检查 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!