簡體   English   中英

無法設置“Sonar Gerrit”Jenkins插件

[英]Unable to set up “Sonar Gerrit” Jenkins plugin

我正試圖在詹金斯的工作上建立Sonar Gerrit - Jenkins插件

上下文

  1. 在為Gerrit創建補丁集時,會啟動Jenkins作業
  2. 使用git提取源,啟動cppcheck分析並在預覽模式下啟動聲納分析。
  3. 發布后構建操作“發布SonritQube問題作為Gerrit評論”。

以下是第三點的Jenkins分析日志。

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/:FAILURE

我無法理解配置不對的地方。 你知道這個問題嗎?

在Gerrit httpd_log文件中,當我啟動一個新的Jenkins作業時,我有以下幾行。

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

IP - 詹金斯 [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用戶。 此用戶用於將Jenkins服務器連接到Gerrit服務器(ssh和REST API)。 這是問題嗎?


到目前為止我嘗試了什么

在Jenkins下重新配置Gerrit Trigger插件

正如@Marcelo所提到的,Sonar Gerrit插件使用Gerrit觸發器。 我在Gerrit觸發器設置后重新配置了整個插件。

我之前錯過了為“Label Verified”添加Gerrit訪問權限的步驟

管理>項目> ...>訪問>編輯

參考:refs / heads / *標簽:已驗證:-1,非交互式用戶+1

關於帖子的詳細解釋無法在gerrit 2.7中找到“Label Verified”權限

刪除從Jenkins發送到Gerrit的已驗證標記發送,如Gerrit> 2.7的安裝文檔中所述。

轉到“管理Jenkins”並單擊“Gerrit Trigger”鏈接

在服務器旁邊的“Gerrit Servers”下單擊“編輯”按鈕(看起來像一個齒輪,其他圖標可能會重疊)

在“Gerrit Reporting Values”下,單擊底部的“高級”按鈕

在“Gerrit Verified Commands”下,從每個命令中刪除“--verified”部分


軟件版本

  • Jenkins 2.19.1 Git(2.5.3),Gerrit Trigger(2.21.1),SonarQube(2.4.4),Sonnar Gerrit(1.0.6)插件。 注意:Gerrit Trigger Rest API功能正常
  • SonarQube 5.5
  • 格里特2.12.2。 安裝了Events-Log插件(默認配置)

我懷疑Jenkins和Gerrit之間的REST API連接存在問題。

“Sonar Gerrit”插件使用“Gerrit Trigger”插件在Gerrit中發布消息。 “Gerrit Trigger”插件可以使用兩種不同的方法在Gerrit中發布消息:SSH或REST API。

“Build Failed ... FAILURE”消息由“Gerrit Trigger”插件直接發布,可以使用SSH執行。 “Sonar Gerrit”消息不能使用SSH執行,需要使用REST API完成,因此需要將“Gerrit Trigger”插件配置為使用REST API啟用“Sonar Gerrit”插件以在Gerrit中發布。

在這里查看更多信息。

轉到Jenkins>管理Jenkins> Gerrit Trigger>編輯>高級

並檢查REST API是否已啟用以及它是否按預期工作(使用“測試REST連接”按鈕)

它是否適用於“帖子得分?”部分? 未選中?

您在評分發布中使用什么類別? (你在Gerrit中創建過嗎?)

如果我沒記錯的話,一個異常(由Gerrit Trigger提供)導致消息

無法發布評論:請求失敗。

總是完全一樣,無論如何都無法理解RestApiException的原因。

新版的sonar-gerrit插件已經發布。 對不起,我很抱歉。

我現在無法完全解決問題JENKINS-32851 ,因為異常的原因可能會有所不同,但我添加了查看RestAPIException堆棧跟蹤的功能。 查看項目Wiki中的詳細信息 如果它有幫助(或沒有)以及導致您的問題(是?),請告訴我。 我覺得我必須在項目Wiki的故障排除部分添加一些可能的異常原因:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM