我试图使用Quality Gate插件(v2.5)在我的Jenkins服务器中构建失败。在我的jenkins中,我安装了SonarQube插件(v2.4.4)和SonarQube Scanner v2.6.1。我已经配置了SonarQube服务器以及v5.6 我已经在我的服务器中为使用我的Jenkins服务器构建的项目定义了一个质量门(例如,错误> 10)。我在詹金斯创造了同样的自由式工作。我想要实现的是,只要不满足质量门要求,Jenkins中的构建就会失败。 我在Jenkins的构建步骤中使用“Execute SonarQube Scanner”选项,在post构建操作中使用Quality Gate选项(使用我的项目键)。我已在“分析属性”部分中定义了声纳分析的参数。
目前,当未达到质量门限阈值时,SonarQube服务器上的状态将更改为失败,但构建将在Jenkins中传递。在Jenkins下一次执行相同的作业期间,Quality Gate失败了构建。也就是说,构建状态不会与SonarQube服务器同步更改,但在以下执行中
请你告诉我在这里缺少什么?
答案 0 :(得分:4)
自从您发布此内容已经有一段时间了,但也许我至少可以帮助理解。
在SonarQube 5.6中(不知道何时发生变化),在SonarQube的后台任务中分析了构建分析。因此Jenkins Build在将分析发布到服务器之后完成,并且在SonarQube服务器上的后台任务完成之前很久就完成了构建。
在SonarQube的后台任务期间或结束时,它会检查QualityGate。
所以詹金斯的插件总是“过时”#34;至少在SonarQube版本高于5.6的情况下,QualityGate状态。
可以扩展Jenkins插件并添加"等待后台任务"选项。当然这会导致Jenkins的构建时间更长。这已经在" Quality Gates Plugin"的this分叉中完成。
希望这一切: - )