乐趣区

关于devops:CICDgitlabjenkinssonarqube实现自动构建代码自动检测

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 密钥“,如下图所示。

4 配置 jenkins 和 sonarqube

1、在 jenkins 中创立一个我的项目;

2、关上“源码治理”,配置 gitlab 我的项目 ssh 地址,配置分支名,如下图 2 所示。

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

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

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

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

5 配置 gitlab webhook

如下图所示,在我的项目中,抉择设置——》集成——》增加钩子。

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

测试,点击 test——》push event

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

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

阐明配置胜利。

这会 jenkins 会主动构建,构建好之后,会生成 sonarqube 检测后果,间接通过 jenkins 界面拜访 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…

退出移动版