Jenkins 公开了一个名为 CHANGE_ID 的全局变量:
对于与某种变更请求对应的多分支项目,这将设置为变更 ID,例如拉取请求编号。
此变量仅针对拉取请求构建填充,因此您必须在管道的分支源配置中禁用分支构建并启用 PR 构建:
然后我的管道步骤如下所示:
def PULL_REQUEST = env.CHANGE_ID
stage('Analysis') {
withCredentials([[$class: 'StringBinding', credentialsId: '***', variable: 'GITHUB_ACCESS_TOKEN']]) {
withSonarQubeEnv('Sonar') {
withMaven(maven: 'M3') {
sh "mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar " +
"-Dsonar.analysis.mode=preview " +
"-Dsonar.github.pullRequest=${PULL_REQUEST} " +
"-Dsonar.github.oauth=${GITHUB_ACCESS_TOKEN}"
}
}
}
}