环境:

此文档我将jenkins和SonarQube安装在同一台机器上演示

Jenkins安装,请见: https://blog.51cto.com/qiangsh/1771832

SonarQube安装, 请见:https://blog.51cto.com/qiangsh/1836621

一、Jenkins 集成SonarQube

1、登录SonarQube获取token

使用admin用户登录SonarQube,右上角进入我的账号。

Jenkins 集成SonarQube+Gitlab_jenkins

Jenkins 集成SonarQube+Gitlab_SonarQube_02

Jenkins 集成SonarQube+Gitlab_SonarQube_03

2、Jenkins配置

需提前安装插件:Quality Gates Plugin ,Sonargraph Integration Jenkins Plugin ,Sonargraph Plugin ,SonarQube Scanner for Jenkins

打开系统管理-找到 SonarQube servers

Jenkins 集成SonarQube+Gitlab_SonarQube_04

3、Jenkins 配置项目(以下为测试步骤)

3-1、将 https:///SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven示例代码提前上传到gitlab项目(jenkins-demo)中;

3-2、创建jenkins流水线项目Jenkins 集成SonarQube+Gitlab_SonarQube_05

//配置里只填写流水线部分

Jenkins 集成SonarQube+Gitlab_SonarQube_06

脚本内容:

node {
   stage('拉取代码'){
       echo "Code Pull"
       git credentialsId: 'xxxxxxxxxx', url: 'ssh://git@gitlab.xxxxx.com:1111/Devops/jenkins-demo.git'
   }
   stage('代码构建'){
       echo "Code Build"
       sh "cat /etc/fstab"
   }
   stage('质量扫描'){
       withSonarQubeEnv('SonarQube'){
           sh '/usr/local/sonar-scanner/bin/sonar-scanner'
       }
   }
   stage('单元测试 '){
       echo "Unit Test"
   }
   stage('是否部署'){
       input '是否部署'
   }
   stage('部署开发环境'){
       sh 'ls /mnt/'
   }
}

构建效果

Jenkins 集成SonarQube+Gitlab_jenkins_07

Jenkins 集成SonarQube+Gitlab_SonarQube_08


四、Jenkins集成Gitlab

1、gitlab获取token

使用管理员登录gitlab,右上角用户头像—点击Settings

Jenkins 集成SonarQube+Gitlab_jenkins_09

Jenkins 集成SonarQube+Gitlab_SonarQube_10

2、Jenkins配置

需提前安装插件:Gitlab Hook、GitLab PluginGitlab Authentication

打开系统管理-找到 Gitlab

Jenkins 集成SonarQube+Gitlab_SonarQube_11

//添加Jenkins证书

Jenkins 集成SonarQube+Gitlab_SonarQube_12

Jenkins 集成SonarQube+Gitlab_SonarQube_13

/打开jenkins项目,配置触发器

Jenkins 集成SonarQube+Gitlab_SonarQube_14


Jenkins 集成SonarQube+Gitlab_jenkins_15

//打开gitlab项目:https://gitlab.xxxxxx.com/Devops/jenkins-demo

Jenkins 集成SonarQube+Gitlab_jenkins_16


Jenkins 集成SonarQube+Gitlab_jenkins_17

Jenkins 集成SonarQube+Gitlab_SonarQube_18