前提条件
安装gitlab、jenkins、sonarqube,sonar-scanner
整体思路
1、当有代码push到代码仓库的时候,gitlab是知道的,gitlab检测到有代码push的时候,执行一个钩子(gitlab上叫hook),可以理解为触发一个推送时间,推送到jenkins;
2、jenkins 检测到这个事件之后,自动构建;
3、jenkins可以配置构建后动作,配置构建后自动执行sonarqube检测。至此,完成自动构建+自动检测的全过程。
配置jenkins
在jenkins中,选择“构建触发器”下面的“高级”按钮,点击”Generate”按钮,在Secret token会生成值
在gitlab中
配置gitlab webhook
说明:如果执行测试,出错:Hook executin fail:execution expired,那么有可能是gitlab、和jenkins网络不通。
如果测试通过,会返回:Hook executed successfully: HTTP 200。说明配置成功。
这会 jenkins 会自动构建,构建好之后,会生成sonarqube检测结果,直接通过jenkins界面访问sonarqube界面即可。
然后登录sonarqube就可以看见分析的结果