2012-12-13 58 views
3

我們正在將構建和測試系統移至Jenkins,並且正在尋找一種簡單的方法(我們不需要自己編寫所有邏輯)來管理構建工件。C++構建工件管理

基本上,我們需要一種有組織的方式,通過構建的類型將它們存儲在順序,誰建的用戶和這樣的例子:

johnd/nightly/r543241/win32/program.zip 
johnd/nightly/trunk/lin64/program.tar.gz 
master/release/2.1/win32/program.zip 

這樣當構建完成後,我們可以上傳,並輕鬆地在測試階段檢索所需的工件。

到目前爲止,我們只是將文件存儲在NFS上的目錄中,但最近開始考慮工件管理器。我看過Artifcatory,Archiva和Nexus。但是,所有的Java都以Java爲中心,或者至少需要Maven才能使用。由於我不想引入更多的複雜性(我們主要使用python,scons是我們的構建工具),我不想將maven引入混合中,我正在尋找一些簡單的命令行(或更好的REST/Python界面)來上傳,下載和管理工件。

如果您不使用工件管理器,但使用其他一些聰明的方法來管理您的C++工件以進行發佈/測試需求,我也很樂意聽到這一點。

回答

0

我有完全相同的問題。我沒有成功整合artillyctory easilly,所以我忘了它。

目前我使用複製artefact插件通過scp將文件複製到NFS共享。但這不是一個好的解決方案,因爲共享可能在兩臺機器上以不同的方式安裝,並且Windows無法直接訪問它們。

但是真正的工件管理器對我們的項目來說是如此的好事。

在我以前的工作中,我使用了提供良好服務的文檔CMS(LiveLink): - 自我組織的文件夾。 - 持久URL(我們可以移動,重命名文件夾和文件,給定文件的公共URL永遠不會改變,這是很好的:「http:// server/go/123456789123456789」總是指向同一個文件。不得不放棄這給wget,你得到的文件 - 文件versionning - 元數據,先進的搜索

我還在尋找在開源軟件這樣的解決方案,並沒有發現它

。在你只需要在兩個作業之間共享人造物,簡單地使用「複製人工製品」作爲另一個構建插件。我用它將作業分成構建作業和測試作業(實際上有3個測試作業,一個作業非常快在每次提交之後,每天都做得很慢,而且o每週結束都很慢)。