2016-04-29 100 views
0

我明白這個職位是類似於: Aggregating results of downstream is no test in Jenkins彙總測試結果詹金斯與參數化喬布斯

同時也: Aggregating results of downstream parameterised jobs in Jenkins

儘管如此,我無法弄清楚了我的情況下,如何使這個工作。我目前正在使用Jenkins 1.655。

我有工作A,B,C - A是上游工作。我想要做的就是打個電話B和B打電話C.所有需要的區塊並等待下一個完成。如果失敗了,全部失敗。 B和C生成單元測試報告。所以我想聚集在一個這些報告,然後發佈該結果A.所以,這裏的作業的當前設置:

工作答:

打造步驟

  1. 執行shell :echo $(date) > aggregate
  2. 觸發參數化打造專業化工作:作業B

後生成步驟

  1. 下行組合的測試結果
  2. 記錄指紋檔案跟蹤使用的:設置文件到指紋aggregate
  3. (從B和C報告文件)發佈JUnit測試結果報告

工作B:

構建步驟從另一個項目

  1. 複製文物:從上游作業拷貝aggregate文件
  2. 運行測試生成單元測試報告
  3. 觸發參數化的建設工作:作業C

它最終在這裏失敗,因爲aggregate只存檔在 作業A的後構建步驟。如何在構建步驟中歸檔工件?

後生成步驟

  1. 骨料下游的測試結果(單元測試。XML生成)
  2. 記錄指紋檔案跟蹤使用的:設置文件到指紋aggregate

我不會在這裏張貼的作業C的簡單,但它遵循幾乎做什麼B中。

所以,總結起來,我想有一個相互依存相互關聯的作業和使用參數化插件和上游作業必須聚集所有下游的測試結果。

任何幫助表示讚賞,謝謝!

回答

1
  1. 如果您對運行作業的位置沒有限制,您可以始終指定它在同一工作區\ machine上運行 - 這將解決您的所有問題。
  2. 如果由於某種原因,你不能在同一個工作區上運行它,而不是使用複製工件插件,你可以使用Jenkins中的WS鏈接(猜測你正在使用Parameterized Trigger Plugin),所以它很容易使用定義從觸發任務wget的從工作中的「聚合」文件:TRIGGERED_BUILD_NUMBER _ =「最後的集結號引發的」從A這也將幫助您跟蹤作業B的和C你觸發擺脫那裏的文物。

希望它能幫助!

+0

感謝您的幫助。所以,如果我理解正確,你說要將結果歸檔到B和C中。然後在A的Post Build Steps中,我必須對該URL執行wget並檢索它。這是正確的嗎?謝謝你,並會嘗試這個@ Dvir669 –

+0

我在做什麼,現在是從B和C的結果複製直接進入工作區作爲後建立B和C的步驟。然後我在發佈A的結果接近的作品,但阻止我從彙總結果 - 這是我想要的。 –

+0

很抱歉關於遲到的回覆 - 我在國外:) 我的意思是說你可以從作業的WORKSPACE中獲取實際的文件(例如 - https:// J_MASTER:PORT/job/Job_Name/ws/report.cvs)並直接將它下載到A,而無需通過歸檔將它移動到主服務器。 當你在構建部分的所有報告(而不是後生成),你完全可以在負載測試報告 - 封存所有和發佈 – Dvir669