2008-09-18 45 views
1

假設你正在開發一個需要編譯和多個主機(比如Linux和Windows)上運行的代碼,你將如何去這樣做,以最有效的方式考慮到:編譯多個主機上

  • 您可以完全訪問硬件,你的編譯(在我的情況下,Linux主機和Windows主機站在我的辦公桌)
  • 大廈在網絡驅動器的每個主機太貴
  • 沒有提交到中央存儲庫應該是必需的 - 假設有一個CI引擎在嘗試在

「高效」意味着保持編譯 - 編輯 - 運行週期儘可能短而簡單。

回答

1

其他答案中提到的大多數構建服務器都會檢查您的版本控制系統更改。鑑於您的「沒有提交到中央存儲庫應該是必需的」要求,我建議您嘗試Jetbrains TeamCity CI服務器。

它具有Visual Studio和Eclipse插件,允許您請求「private build」,將您的更改直接發送到構建服務器。對於每個項目,您可以定義具有不同要求的許多構建配置(操作系統是可能的需求之一)。如果構建成功,插件將提示您提交更改。

免費版本支持3個代理商,如果需要可以購買更多。

它看起來像脈搏也有same feature,但我沒有第一手的經驗。

0

選擇一臺機器作爲您的開發箱。

設置另一個定期自動更新源代碼管理(每小時/每天/任何)。任何構建/測試失敗都會向您發送某種警告消息。 (電子郵件,即時通訊,等等)。由於它有自己的樹副本,因此您的非開發框仍在本地構建。

在做真正的發佈之前,你仍然想要做人體測試。但是這會讓剩下的時間保持健康。

1

我們發現Hudson是一個很好的CI服務器,可以根據需要從源代碼控制執行構建。由於它是用Java編寫的,它可以運行在您選擇的目標平臺上,並且由於界面是基於Web的,您可以從任何地方控制它。有插件可以完成大部分你想做的事情,最重要的是它是免費的!

0

構建這種任務的簡單設置非常簡單。
我會建議Cygwin在Windows平臺上使用。這樣你就可以爲Linux和Windows平臺編寫完全可移植的軟件/腳本。你不清楚你在哪個項目階段發佈了你的項目,但假設你只是開始,我會建議使用make來構建你的軟件。您可以使用cron爲您的結賬/建立圈安排頻率。如果破壞,您甚至可以發送帶有生成日誌的電子郵件。
有一些準備每日構建測試商業和開源你可以谷歌它或可能有人會在這裏添加建議。
我們正在使用家庭成長的工具來完成這項任務,所以我不能建議任何準備好的東西。

好吧,我錯過了你不想使用源代碼管理系統(這很奇怪,但你是老闆:)),在這種情況下,只需用rsync替換籤出一切其他保持類似。

3

我可以推薦的最好的東西是一個叫做'BuildBot'的超棒的跨平臺項目。

每次您在源控制系統中檢查新版本時,BuildBot都會自動導致在您支持的每個平臺上發生構建。它建立在OSX,Linux(Ubuntu),Linux(Debian),Linux(Redhat),Vista,Windows XP等上,並且在構建失敗時發送電子郵件或任何你喜歡的東西。

作爲構建過程的一部分,如果測試通過,您可以發佈二進制文件。對於'每晚'或'出血端'構建有用。

這裏的一些網址:

+0

但是其中一個要求是不需要提交,即我希望能夠直接從單個源代碼樹構建。我們使用Hudson來構建Windows和Linux,所以我想在沒有提交的情況下發現任何問題。 – JesperE 2008-09-18 07:45:42

0

由於您使用CI我假定你已經設置了一個構建過程正常。我們正在做的是我們使用windows box作爲開發機器,並且CI在Solaris上運行。這確保代碼在多個平臺上編譯良好。代碼是用Java編寫的,我們不使用任何本地庫,因此可以保證代碼可以正常工作。 我們正在使用Bamboo工作 - 這是偉大的,但不是免費的:-)

對於我的私人項目,我一直在使用Continuum,但Husdon看起來整潔(我會試試看) - 謝謝彼得。

+0

您可以在基於Java的應用程序中實現大量的錯誤,這些錯誤只會在單個平臺上失敗。我們的測試失敗只發生在Linux上,甚至在OSX上傳遞。我認爲最好的做法是測試你打算髮貨的所有東西。 – Trejkaz 2015-08-11 00:30:47

0

其中一個選項是Cascade,它允許您在服務器上「檢查」它們之前而不是之後,在所有平臺上測試所有平臺上的更改。

0

一個字:Cruise(不克魯斯控制)是非常好的。

您可以免費獲得兩個代理商,並且每個平臺可以獲得一個代理商。它需要幾分鐘時間才能在Mac和PC上設置,而且從我聽到的內容來看,在Linux上並不算太壞。