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-demosonar.projectName=project-demosonar.projectVersion=1.0 sonar.language=java sonar.java.binaries=target/classessonar.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...