我正在尝试使用Jenkins管道与Sonar一起分析源代码。要要求Sonar将结果通知Github,我需要指定Pull Request ID。
如何从Jenkins Pipelines获取此请求请求ID?
我们正在使用GitHub Organization Folder Plugin
而不是GitHub pull request builder plugin
来构建请求请求。这就是$ghprbPullId
对我不起作用的原因。有什么想法如何以其他方式获取拉取请求ID?
最佳答案
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}"
}
}
}
}
关于github - 如何从 Jenkins 管道获取拉取请求ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41695530/