Jenkins “无法设置”;声纳Gerrit“;詹金斯插件

Jenkins “无法设置”;声纳Gerrit“;詹金斯插件,jenkins,continuous-integration,sonarqube,jenkins-plugins,gerrit,Jenkins,Continuous Integration,Sonarqube,Jenkins Plugins,Gerrit,我想找一份詹金斯的工作 上下文 为Gerrit创建修补程序集时,将启动Jenkins作业 使用git提取源,启动cppcheck分析,并在预览模式下启动声纳分析 启动建造后行动“按Gerrit评论发布Sonaqube问题” 下面是第三点的詹金斯分析日志 Getting Sonar Report from: [XX].sonar\sonar-report.json Report has loaded and contains 2950 issues Connected to Gerrit: ser

我想找一份詹金斯的工作

上下文

  • 为Gerrit创建修补程序集时,将启动Jenkins作业
  • 使用git提取源,启动cppcheck分析,并在预览模式下启动声纳分析
  • 启动建造后行动“按Gerrit评论发布Sonaqube问题”
  • 下面是第三点的詹金斯分析日志

    Getting Sonar Report from: [XX].sonar\sonar-report.json
    Report has loaded and contains 2950 issues
    Connected to Gerrit: server name: Gerrit. Change Number: 297, PatchSetNumber: 1
    Unable to post review: Request failed.
    Build step 'Post SonarQube issues as Gerrit comments' marked build as failure
    Finished: FAILURE
    
    Gerrit中添加了一条评论(意味着通信工作正常)

    构建失败 http:jenkins.com/job/project/118/:失败

    我无法理解配置不正确的地方。你知道这个问题吗

    在Gerrit
    httpd_log
    文件中,当我启动一个新的Jenkins作业时,我有以下几行代码

    IP-[26/oct/2016:14:30:08+0200]“POST/a/changes/REF/revisions/REF/review HTTP/1.1”40112-“Apache HttpClient/4.4.1(Java/1.8.020)”

    IP-jenkins[26/oct/2016:14:30:08+0200]“POST/a/changes/REF/revisions/REF/review HTTP/1.1”200 24-“Apache HttpClient/4.4.1(Java/1.8.0_20)”

    在第一个命令中没有用户,而在第二个命令中有
    jenkins
    user。此用户用于将Jenkins服务器连接到Gerrit服务器(ssh和REST API)。这就是问题所在吗


    到目前为止我试过什么

    重新配置Jenkins下的Gerrit触发器插件

    如前所述,Sonar Gerrit插件使用Gerrit触发器。我重新配置了整个插件如下

    我之前错过了为“标签验证”添加Gerrit访问权限的步骤

    管理>项目>…>访问>编辑

    参考:refs/heads/*标签:已验证:-1,+1用于非交互式用户

    详细的解释后

    删除Jenkins发送给Gerrit的已验证标签 如中所述,Gerrit>2.7

    转到“管理Jenkins”并单击“Gerrit触发器”链接

    在服务器旁边的“Gerrit服务器”下,单击“编辑”按钮(如图所示) 与齿轮一样,其他图标可能重叠)

    在“Gerrit Reporting Values”下,单击底部的高级按钮

    在“Gerrit Verified Commands”下,从每个命令中删除“--Verified”部分


    软件版本

    • Jenkins 2.19.1 Git(2.5.3)、Gerrit触发器(2.21.1)、SonarQube(2.4.4)、Sonnar Gerrit(1.0.6)插件。注意:Gerrit触发器Rest API是功能性的
    • 声纳QUBE 5.5
    • Gerrit 2.12.2。已安装事件日志插件(默认配置)

    我怀疑Jenkins和Gerrit之间的REST API连接有问题

    “Sonar Gerrit”插件使用“Gerrit触发器”插件在Gerrit中发布消息。“Gerrit触发器”插件可以使用两种不同的方法在Gerrit中发布消息:SSH或REST API

    “Build Failed…FAILURE”消息由“Gerrit Trigger”插件直接发布,可以使用SSH执行。“Sonar Gerrit”消息不能使用SSH执行,它们需要使用REST API完成,因此“Gerrit触发器”插件需要配置为使用REST API来启用“Sonar Gerrit”插件在Gerrit中发布

    查看更多信息

    转到Jenkins>管理Jenkins>Gerrit触发器>编辑>高级

    并检查REST API是否已启用,以及它是否按预期工作(使用“测试REST连接”按钮)

    在未选中“post score”部分时,它是否工作

    你使用哪一类来发布分数?(你在Gerrit中创建了它吗?)

    若我没记错的话,一个异常(由Gerrit Trigger提供)导致了这个消息

    无法发布审阅:请求失败


    始终是完全相同的,并且无助于理解RestApiException的原因。

    sonar gerrit插件的新版本已经发布。很抱歉耽搁了

    我现在无法完全修复这个问题,因为异常的原因可能会有所不同,但我添加了查看RestAPIException stacktrace的功能。请参见项目中的详细信息。
    请让我知道它是否有帮助(或没有),以及是什么导致了您的问题。我觉得我必须在project Wiki的疑难解答部分添加一些可能的异常原因:)

    谢谢您的详细解释。我没有在我的问题上提到它(我现在编辑了),但RESTAPI是正确启用的。重新启动詹金斯不会改变任何事情。有没有办法测试Rest API消息?您是否使用了“Gerrit Trigger”配置中的“test Rest Connection”按钮?是的,它可以工作。上面写着“成功”。等待其他提示,我将尝试重新配置整个插件这真的很奇怪。。。Gerrit的变化还没有结束,是吗?你为什么不使用Sonar Gerrit插件2.4.4(最新版本)?仅供参考,我看不出有任何问题,但我们已经没有选项了…请检查新的1.0.7版本以获取额外的日志记录。额外的日志记录是相关的,并向我显示问题来自连接。问题仍然存在,但它没有链接到您的插件