2012-04-06 35 views
0

我發現這個:Plugin to commit hudson build artifact但是在嘗試每個可設想的組合的5-6個小時之後,我無法成功提交到我們的https'svn。Hudson構建後承諾龜SVN?

我正在考慮通過批處理文件來做到這一點 - 但不知道是否有可能模糊密碼......如果不是,那麼這也不是一個真正的選擇。

是否有人這樣做成功?可以使用一些建議..謝謝。

回答

0

我最終只使用批處理腳本來檢出我的目標文件夾,將文件複製到該文件夾​​,將它們添加到SVN,然後提交這些文件。唯一的障礙是提供證書。我的解決方案是登錄到Hudson執行的機器上並手動提交一次。這使我可以'保存我的登錄信息'在構建服務器上加密。理想情況下,您應該使用有限訪問的帳戶來執行此步驟。

0

主要問題是龜沒有與「真正的」SVN命令行客戶端。命令行幾乎可以提交 - 它會打開一個窗口並提示輸入更多信息。您是否看過Maven release plugin?你用它與SVN命令行(不是烏龜)。您可以加密Maven passwords。雖然我已經成功地將這些應用於Nexus,但我還沒有嘗試過使用它們來訪問SVN。

0

我不會將Subversion構建的文件提交回Subversion存儲庫。這只是要求麻煩。一旦你向Subversion提交了一些東西,它就會一直存在。你永遠不能刪除過時的信息。

文本文件的變化並不是那麼糟糕,因爲它們的差異非常好,Subversion將每個版本存儲爲差異格式。但是,二進制文件不能很好地區分。如果您的二進制輸出大小爲500 Mb,則每次提交將在您的Subversion存儲庫中添加500 Mb。用Hudson做這件事,並且在每一次構建之後做這件事,並且在不到一年的時間內討論數百GB的數據 - 其中大部分將是您的代碼的過時版本,您根本不需要。

使用Hudson本身來存儲您的構建。構建過程中的一個步驟是存檔文物。我只是使用我的構建文件將我想要存儲的所有工件複製到target/archive目錄中,並讓Hudson存儲該目錄。

我們定義哈德森作業刪除舊的構建,但離開天保持最大保持空白。相反,我們點擊Advance按鈕並指定保留文物多久。這樣,我們永遠不會刪除一個版本,但我們保持Hudson服務器有足夠的空間。

在特定版本中,您可以點擊永久保存此版本,它將保存工件而不是刪除它們。這可以讓您保留已發佈的工件,但仍然會移除您不再感興趣的每日構建內容。

您甚至可以使用wgetcurl獲取工件並對其進行部署。我們用我們的部署腳本來做到這一點

如果你想獲得更好的(和誰不會),把你的構建工件放在一個Maven倉庫中。即使您沒有在構建過程中使用Maven,也可以這樣做。再次,這存儲您的工件,但允許您刪除和修剪你不想保留的那些。

如果你真的要存儲在顛覆你的構建神器,你可以做你與batch文件做了什麼,並使用svn cosvn commit -m"Some sort of message %BUILD_NUMBER%"命令來做到這一點。但是,一旦有什麼東西在你的Subversion版本庫中,就很難刪除它。準備燒穿磁盤空間。

0

嘗試在配置下的'Execute shell'中添加以下一段腳本。

 

echo "Committing build.number file to SVN.." 
cd $APPROPRIATE_PATH 

svn commit -m "some svn commit comment" MyApp/etc/build/build.number 

echo "Build file committed "