创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。
操作系统信息
不涉及
Kubernetes版本信息
不涉及
容器运行时
不涉及
KubeSphere版本信息
不涉及
问题是什么
不涉及
分享如下
如官网文档所示,配置`https://docs.kubesphere.com.cn/v4.2.0/11-use-extensions/02-devops/10-how-to-integrate/01-sonarqube/\`完成后,需配置一个流水线进行快捷测试。现提供以下复制即可用的流水线配置。
前提条件:镜像需联网拉取。已按照文档要求完成配置。`SONAR_CREDENTIAL_ID
` 应在凭证已配置名为 sonar-tokend
的凭证。
提醒(为规避资源丢失问题):
- 请将镜像拉取到自己的仓库存档,并改image为自己的仓库地址。
- fork一份coude repo的仓库,改为自己的仓库地址。
pipeline {
agent {
kubernetes {
inheritFrom 'mypod'
yaml """
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: ccr.ccs.tencentyun.com/kubespherev3.4.1/maven:3.8.7-jdk18-git
command: ['cat']
tty: true
"""
}
}
environment {
SONAR_CREDENTIAL_ID = 'sonar-token'
CODE_REPO = 'https://gitee.com/mirrors_SonarSource/sonar-scanning-examples.git'
PROJECT_DIR = 'sonar-scanning-examples/sonar-scanner-maven/maven-basic'
}
stages {
stage ('clone java code') {
steps {
container('maven') {
sh 'git --version || { echo "git 安装失败"; exit 1; }'
sh "git clone ${CODE_REPO}"
sh "test -d ${PROJECT_DIR} || { echo '代码克隆失败'; exit 1; }"
}
}
}
stage('sonarqube analysis') {
steps {
container ('maven') {
withCredentials([string(credentialsId: "$SONAR_CREDENTIAL_ID", variable: 'SONAR_TOKEN')]) {
withSonarQubeEnv('sonar') {
sh """
set -e
cd ${PROJECT_DIR}
mvn -v
mvn clean verify sonar:sonar -Dsonar.login=\$SONAR_TOKEN
"""
}
}
timeout(time: 30, unit: 'MINUTES') {
waitForQualityGate abortPipeline: true
}
}
}
}
}
}
运行后,可见sonarqube的图标界面。
以上是个人多次测试后确认可用的快捷测试方法。