安装步骤
GitLab+Jenkins+sonarqube+harbor+k8s安装-CSDN博客
准备步骤
与上方的基础上,在jenkins安装SonarQube scanner插件
jenkins的system中配置SonarQube servers,验证选择Secret text,令牌在sonarqube用户的安全里面
在tools中对Sonarqube Scanner配置
sonarqube中,连接gitlab:
gitlab地址加上后缀/api/v4,为什么是这个后缀倒是不知道,搜也没搜出来
设置sonarqube的返回钩子,地址加上sonarqube-webhook/后缀:
SpringBoot项目
1、新建pipeline
2、配置触发器
3、编写脚本
pipeline {
agent none
tools {
// 设定maven环境
maven "maven"
jdk "jdk17"
}
stages {
// 定义一个git块,拉取代码并进行代码测试
stage('Git') {
agent any
steps {
// 片段生成器生成的拉取代码
git branch: 'main', credentialsId: 'gitlab', poll: false, url: 'http://172.16.4.141:12000/root/test.git'
}
}
// 构建并代码检查
stage("build & SonarQube") {
agent any
steps {
withSonarQubeEnv('SonarQube') {
sh "mvn clean package sonar:sonar -Dsonar.projectKey=root_test_789a3938-6ad8-46c6-9008-04829a1223b7 -Dsonar.projectName='test'"
}
}
}
// 等待检查结果,如果不通过则停止
stage("wait sonarqube result") {
steps {
timeout(time: 1) {
waitForQualityGate abortPipeline: true
}
}
}
stage("pass"){
agent any
steps {
sh '''
NAME=test
JAR=test-0.0.1-SNAPSHOT
HOME=/var/lib/jenkins/workspace/test
cd $HOME/target
cp $HOME/Dockerfile $HOME/target
chmod 755 $JAR.jar
docker stop $NAME > /dev/null || true
docker rm $NAME > /dev/null || true
docker rmi $NAME > /dev/null || true
docker build -t $NAME . > /dev/null || true
docker run -d -p 9999:9999 --name $NAME $NAME'''
}
}
}
}