我問這個問題,因爲我發現社區對各種構建引擎(如MSBuild和NAnt)的貢獻包括所有促進CI服務器的任務,例如從源代碼管理獲取版本,清理文件夾,更改內部版本號,發送電子郵件等...CruiseControl .net(或任何CI服務器)可以做到MSBuild或NAnt不能做什麼?
僅僅是因爲它「監聽」源代碼管理存儲庫上發生的更改嗎?我還有什麼遺漏?
我問這個問題,因爲我發現社區對各種構建引擎(如MSBuild和NAnt)的貢獻包括所有促進CI服務器的任務,例如從源代碼管理獲取版本,清理文件夾,更改內部版本號,發送電子郵件等...CruiseControl .net(或任何CI服務器)可以做到MSBuild或NAnt不能做什麼?
僅僅是因爲它「監聽」源代碼管理存儲庫上發生的更改嗎?我還有什麼遺漏?
Grzegorz Oledzki鏈接了一個很好的資源來找出多個CI解決方案之間的差異,但應該注意的是,MSBuild的目的是專門將代碼轉換爲二進制,並由CI軟件用於構建源代碼。誠然,它可以做其他事情,但其大部分任務都在這個領域內。
除了你提到聽回購什麼,有些CI服務器可以做各種各樣的事情一樣^ 1:
而且一般都從一個方便的UI。
1並非所有CI軟件都具備所有這些功能,但它絕不意味着詳盡無遺,並且存在一些重疊。
我相信CI (Continuous Integration) feature matrix將回答關於特定CI提供者及其功能的所有問題。
哇有這麼多的答案。至於CI系統可以做什麼,構建腳本不能除了聽你的版本控制系統以外......對於初學者來說,像TeamCity這樣的系統可以讓你首先在構建服務器上測試你的代碼,然後檢查它是否在if它通過了所有的初學者測試。
我強烈建議使用CI服務器,但我更願意將所有構建邏輯保留在MSBuild文件中,以及所有在CI服務器中發生故障時通知誰。保持構建文件中的邏輯可以幫助您在自己的機器上重新構建構建,並使得在CI服務器中設置新項目或更改CI服務器構建項目的方式變得簡單