ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

GitLab、Jenkins、Sonar集成,分支/代码合并事件触发代码规范检察

2022-01-28 11:00:09  阅读:298  来源: 互联网

标签:配置 代码 GitLab 合并 构建 Sonar Jenkins


代码质量检察


注意:
       1、GitLab WebHooks触发功能,不支持触发本机的Jenkins,因此GitLab 和Jenkins不能部署在同一台机器上,否则不能使用此方式
       2、Jenkins需要拉取代码,和构建项目,因此Jenkins部署的机器需要部署Maven、Git
       3、此方式使用到了Sonar-Scanner环境进行扫描,因此Jenkins部署的机器需要部署Sonar-Scanner环境,不安装Sonar-Scanner环境也行,取消环境依赖,用Mvn指令进行扫描,不过要依赖sonar-maven的一些插件包。(内网环境不建议此方式,插件包太多了,难找,安装Sonar-Scanner便捷多了)

1. 前置环境准备

       GitLab,Sonar,Sonar-Scanner,Jenkins的安装部署这里不做过多赘述,参考之前的博客。
       Git,Maven部署:https://blog.csdn.net/loney_wolf/article/details/122720910?spm=1001.2014.3001.5501
       Sonar,Sonar-Scanner部署:https://blog.csdn.net/loney_wolf/article/details/122719822?spm=1001.2014.3001.5501
        Jenkins部署:https://blog.csdn.net/loney_wolf/article/details/122719103?spm=1001.2014.3001.5501
        GitLab部署:https://blog.csdn.net/loney_wolf/article/details/122714429?spm=1001.2014.3001.5501

2. Jenkins插件安装

        GitLab相关插件安装: Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、GitParamete 、SonarQube Scanner for Jenkins

        插件安装好之后,进入Jenkins 系统配置,找到GitLab Merge Request Builder部分,进行全局信息配置。Jnekins相关用户名,API token都是GitLab的,图二获取GitLab用户访问的API-Token,最好是管理员角色(拥有所有项目的访问权限),不然配置一个项目要生成一个API-Token难管理。
在这里插入图片描述
在这里插入图片描述

3. Jenkins全局变量配置

Dashboard>>凭据管理
        新增一个全局凭证,账号密码形式,用以访问GitLab项目工程
在这里插入图片描述
Dashboard>> 全局工具配置
        配置JDK环境
在这里插入图片描述
Dashboard>> 全局工具配置
       Maven配置
在这里插入图片描述Dashboard>> 全局工具配置
       SonarQube servers配置
在这里插入图片描述
Dashboard>> 全局系统配置
        SonarQube servers配置
       凭据为Secret Text文本类型,Token来源为Sonar管理员账号访问token
在这里插入图片描述
在这里插入图片描述

4. Jenkins项目构建

       构建一个maven项目,配置需要构建、检测的分支,这里取动态值。后续会配置触发时间,动态构建项目配置后,只能在GitLab进行触发,从Jenkins入口进行触发会报错,找不到目标分支。因为无触发事件,管道中的分支至是空的。
在这里插入图片描述
       点击新增 选择Merge before build让其在构建之前,做一次分支合并测试(这里不会对GitLab进行实质合并),合并失败(不能合并)会直接结束。
       注意这里Name of repository是必须配置参数,目前没找到动态参数。因此目标分支的remote源名称,必须是与这里保持一致。不然找不到合并的目标分支。当然这里也可以指定一个分支,但测试结果会变成合并请求分支与固定分支的合并测试。
       */${gitlabSourceBranch} 参数表示提交合并的,请求源分支 */ 表示是任意remote源别名
        ${gitlabTargetBranch} 参数表示合并的目标分支
在这里插入图片描述
       配置构建触发器,这里表开启合并事件时进行构建触发。这个地址要记住,后续在GitLab配置Hooks事件需要
在这里插入图片描述
       构建环境选soarqube scanner
在这里插入图片描述
       提交步骤执行sonar扫描,并推送扫描结果至sonar指定项目
在这里插入图片描述
       推送构建状态至GitLab,并在合并请求事件上新增扫描结果评论
在这里插入图片描述
       Gitlab中,进入项目 设置>> webhooks 中新增一个webhook配置,选择合并请求事件。配置完成后,每次新增合并请求,都会请求到Jenkins,然后进行合并检查
       配置的网址为:构建触发器时,选项后面的url
在这里插入图片描述

5. Sonar配置

       Sonar安装sonar-gitlab-pluginSonar插件后,进入配置>>通用配置>>GitLab 配置,
       配置 : GitLab仓库地址,GitLab User Token
       User Token : 即为Git 个人账号访问令牌,配置管理员账号的token
在这里插入图片描述

6.效果展示

       按照以上配置完毕后,提交一个分支合并请求。
Jenkins会创建一个构建任务,描述时来自GitLab的合并请求事件
在这里插入图片描述
合并请求界面在check完毕后会新增一条评论,点击可以直接跳转Jnekins检查任务页。
在这里插入图片描述
在Jenkins项目界面中,有sonar跳转链接,点击可以直接跳转至当前构建项目的sonar检查结果页。
代码check的结果也会在构建完毕后,推送到Sonar指定项目。效果如下图
在这里插入图片描述
在这里插入图片描述

标签:配置,代码,GitLab,合并,构建,Sonar,Jenkins
来源: https://blog.csdn.net/loney_wolf/article/details/122727451

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有