2017-07-06 86 views
0

Jenkins中的我的一個工作生成html報告,並使用HTML Publisher Plugin從各自的構建鏈接到它。在這種情況下,如果我想直接這個HTML頁面(假定沒有啓用安全保護,所以沒有登錄需要),我需要遵循具有以下形式的鏈接:Jenkins - 將HTML報告發布到自定義網址

http://hostname:port/job/Some%20Job%20Name/buildNumber/Functional_Test_Report/

而且對於每個後續版本,URL將根據buildNumber進行更改。我希望有一個「漂亮」的網址,它會一直顯示最新的報告。說是這樣的:

http://hostname:port/testReport

實際報告HTML然後將每一個構建完成時自動推送到該位置,將消除通過詹金斯每次要查看報表的需要。

有沒有辦法做到這一點?

回答

0

您應該能夠公開BUILD_NUMBER via environment variables並從那裏生成HTML報告的URL。你如何做是取決於你,但你可以做到這一點,所以詹金斯的工作要麼部署一個文件,該文件的內部編號在index.html文件中被硬編碼,<script>重定向到上面發佈的URL模式。這真的取決於你如何設置你的hostname:port。由於您只需要最新的報告,因此您可以簡單地製作它,以便最新作業始終覆蓋舊文件。

雖然我們只是將構建編號暴露給PHP,JSP等文件,但我們做了類似的事情,因此QA知道他們正在查看的構建。然後我們有一個固定的URL,他們可以隨時去(hostname:port/status)。如果我們真的想要,我們可以重定向。

+0

感謝您的回答!是的,固定的URL正是我想要的。內部版本號不應該是URL的一部分,只有最後一個應該是相關的。我不確定我瞭解如何根據您的建議生成此類網址?我如何將報告推送給它?我認爲它是一些文件夾,將包含index.html文件? –

+0

這真的取決於你如何配置你的jenkins工作,但我們實際上只是通過jenkins運行一個shell腳本來創建文件(在shell腳本中,我們簡直就是調用'cat'),然後根據你在哪裏託管你的站點,我們有我們的jenkins作業進行部署並運行shell腳本,以便它將創建帶有「動態」鏈接的我們的網頁。 – aug

0

只是在這裏發佈我自己的解決方案。也許不是最優雅但唯一的方法就是在Jenkins運行的同一臺機器上部署HTTP服務器,並在相關Jenkins作業中添加「後期構建步驟」,以便將HTML報告文件複製到HTTP服務器,覆蓋現有文件if有任何。然後,該報告將在HTTP服務器運行的任何端口上可用。