问题:我正在通过声纳设置 jenkins + sonar + github 集成以进行自动pullrequest静态代码检查。
我的配置:
使用github安装Sonar
已安装jenkins
在jenkins post-build动作中,我有以下属性
-Dsonar.github.login=bhuwang -Dsonar.github.repository=company/repo -Dsonar.verbose=true -Dsonar.analysis.mode=preview -Dsonar.issuesReport.console.enable=true -Dsonar.forceUpdate=true -Dsonar.github.login=gitusername -Dsonar.github.oauth=token
在这个link中我已经读过,我必须在运行sonarqube时提供以下属性:
我添加了除sonar.github.pullRequest属性之外的所有属性。 我不知道如何动态获取此属性值。似乎上述四个属性必须正常工作。
编辑:我找到了添加属性的方法-Dsonar.github.pullRequest = pullrequestNo
好消息是,现在使用硬编码拉取请求没有正常工作。但我需要动态的方式来获取拉请求。
是否有人知道如何获取拉请求。 jenkins内部动态。
我发现拉请求构建器可以工作,但我的运气没有运气。我无法在声纳属性中使用拉请求构建器环境变量。
答案 0 :(得分:26)
最后,我能够解决这个问题。这是详细信息:
使用以下插件安装Jenkins
点击此链接设置拉取请求构建器插件:https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin#GitHubpullrequestbuilderplugin-EnvironmentVariables
在附加属性部分中提供以下声纳属性 p>
-Dsonar.sourceEncoding=UTF-8 -Dsonar.analysis.mode=preview -Dsonar.github.repository=company/repo -Dsonar.github.login=gitusername -Dsonar.github.oauth=oauthtoken -Dsonar.host.url=sonarhostedurl -Dsonar.login=admin -Dsonar.password=pass -Dsonar.github.pullRequest=${ghprbPullId} ${ghprbPullId}: this will be provided via github pullrequest builder plugin
注意:应该通过pullrequest builder插件触发作业,否则$ {ghprbPullId}将返回空白。如果您手动运行该作业,则无法将此$ {ghprbPullId}属性作为构建参数传递。如果您想查看可用的环境参数,请按照此Git environment variables for use in executing Jenkins shell scripts
进行操作我希望这会有所帮助。
答案 1 :(得分:2)
评论太长了,所以我必须在这里写一下。
在对网络进行一些研究之后,我在尝试设置类似系统{... 3}}的过程中,向前几步发现了一个关于SO的问题。他们试图让这一切都与Maven一起工作,我不确定你是否也是,但无论哪种方式,你都可以看到他们一直用来帮助他们编写脚本的链接: / p>
这表明他们需要编写一个脚本,为他们动态检索拉动数。我想您可能需要遵循类似的方法并编写一个脚本来为您检索数字,我相信其中一个github配置文件会跟踪当前的请求编号以用于自己的跟踪目的。
并不像您希望的那样直截了当,但希望这是帮助您实现目标的新信息。
答案 2 :(得分:0)
查看我的项目实现 Jenkins + SONAR + Github,代码位于 https://github.com/lqtruong/ci