2012-11-05 54 views
0

投票之前創建的隧道,我需要創建一個tunnel像以前那樣代碼可以從SVN檢出如下:如何讓詹金斯從SVN

ssh -L 9898:some_server.com:9898 [email protected]_server.com 

現在,我加入pre-scm-buildstep插件,並寫了一個腳本按照here所述更新存儲庫之前打開隧道,但它不適用於輪詢。它只有在我問詹金斯'Build now'時纔有效。在我設置它進行輪詢的設置中,其紅色表示它的unable to access the repository url,只有在未創建隧道時纔會發生。

是否有任何插件,這樣我可以執行一個腳本before it polls,以便它在你的ssh配置開始投票

+0

難道你不能讓隧道在詹金斯外面開放嗎? – hyde

+0

我想我可以編寫一個shell腳本來檢查隧道什麼時候中斷,然後重新建立它。但我寧願把它整合到我的Jenkins工作中(只用Jenkins做所有的自動化) – Daud

+0

那麼,你可以包裝svn命令,我認爲一個簡單的蝙蝠可以工作,在重新啓動隧道之前運行真​​正的svn命令與給定的參數... – hyde

回答

2

使用ProxyCommand之前有SSH自動創建隧道你,我可以打開通道。例如,

Host another_server.com 
    ProxyCommand ssh some_server.com exec nc %h %p 

利用上述在〜詹金斯/的.ssh /配置(或任何用戶詹金斯作爲運行),當它試圖ssh到another_server.com它實際上將ssh到some_server.com和運行nc轉發ssh連接到another_server.com

+0

謝謝。但我需要做本地端口轉發,就像我在問題 – Daud

+0

@Daud中提到的那樣我假定端口轉發是這樣的,您可以通過ssh通過轉發的端口連接到svn。如果沒有,請提供端口轉發後如何連接到svn的詳細信息。 –