8

【CICD】gitlab+jenkins+sonarqube实现自动构建、代码自动检测

 2 years ago
source link: https://segmentfault.com/a/1190000040560161
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1 前提条件

1、需要安装gitlab、jenkins、sonarqube;

2、gitlab需要能访问jenkins地址,网络是通的,因为需要通过gitlab推送事件到jenkins机器;

3、gitlab项目,需要有主程序员及以上权限。

2 整体思路

1、当有代码push到代码仓库的时候,gitlab是知道的,gitlab检测到有代码push的时候,执行一个钩子(gitlab上叫hook),可以理解为触发一个推送时间,推送到jenkins;

2、jenkins 检测到这个事件之后,自动构建(不用手动了);

3、jenkins可以配置构建后动作,配置构建后自动执行sonarqube检测。至此,完成自动构建+自动检测的全过程。

3 第一步:配置密钥对

使用jenkins账号邮箱,生成密钥对。

ssh-keygen -t rsa -C "邮箱地址" -b 4096

1、私钥,配置在jenkins 的项目配置中,下面会说配置在哪。

2、公钥,配置在gitlab的个人设置中,菜单:“SSH密钥“,如下图所示。

gitlab配置SSH密钥

4 配置jenkins和sonarqube

1、在jenkins中创建一个项目;

2、打开“源码管理”,配置gitlab项目ssh地址,配置分支名,如下图2所示。

jenkins源码配置

3、添加账号,类型选择“SSH username with private key“,下面增加上面生成的jenkins私钥。

配置jenkins私钥

3、设置触发器,选中“Build when a change is pushed to GitLab. GitLab webhook”,记住项目地址(记住1)

记住地址

4、选择下面的高级,点击生成,生成secret token,记住这个token(记住2)。

记住token

5、配置构建后动作——sonarqube扫描

sonar.projectKey=project-demo
sonar.projectName=project-demo
sonar.projectVersion=1.0 
sonar.language=java 
sonar.java.binaries=target/classes
sonar.sources=src/main/java

配置sonarqube

5 配置gitlab webhook

如下图所示,在项目中,选择设置——》集成——》添加钩子。

填入url和secret token(jenkins配置中的两个记住),取消选中“SSL证书验证“

取消选中SSL验证

测试,点击 test——》push event

测试推送

说明:如果执行测试,出错:Hook executin fail: execution expired,那么有可能是gitlab、和jenkins网络不通。

如果测试通过,会返回:Hook executed successfully: HTTP 200。

说明配置成功。

这会 jenkins 会自动构建,构建好之后,会生成sonarqube检测结果,直接通过jenkins界面访问sonarqube界面即可。

点击即可跳转sonarqube界面

PS:jenkins 配置 sonarqube 的详细过程,各位看官可以自行查找。

参考文章:

1、Create a Continuous Integration Pipeline with GitLab and Jenkins:https://docs.bitnami.com/tuto...

2、jenkins+gitlab实现springboot的自动化部署:https://blog.csdn.net/songguo...


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK