每日構建 一

2022-02-16 04:21:06 字數 2138 閱讀 3679

每日構建(二)

以前在做專案時,並沒有覺的每日構建有多麼重要,前公司主要給本公司做專案,專案自己人用,也沒覺的編譯,部署有多麼麻煩,之後到了其它公司才發現,每次去部署一次所花的時間和精力真是太傷神了。

難度一:公司要部署的專案特別多,每個專案都親自去獲取原始碼,編譯,發布,就這工作量也不少,更不用說這工作的枯燥性。

難度二:多語言版本的專案。是那種動態載入控制項來實現的,即每種語言都建立乙個使用者控制項,它們共享同乙個後台**,部署的時候,我們需要把乙個專案分成和語言種類相同數目的站點,也就是說,中文站點中只會包含中文用的控制項,英文只會包含英文控制項等等,這種情況下ms的發布功能就不能勝任了。

難度三:測試階段,往往在後期部署的頻率會非常高,這樣如果手工去完成打包的工作,會占用太多的工作時間。

目前有很多任務具都能很好的完成以上功能,但大多都不夠完美,不是這有問題就是那有不足,所以可以綜合幾個工具的特點,讓它們各自發揮特長,這裡我採用的組合如下:

1:ccnet:是乙個**開發階段流程的自動管理監控工具;所包括的流程有根據設定的任務從指定的**庫中check out**、然後自動編譯、自動**檢查、自動單元測試,並將編譯和測試的結果進行記錄和反饋(email方式等),並有還算不錯的web應用平台進行呈現,也支援一部分的分析工作。我主要用它來做主流程的控制,因為ccnet有非常好用的web平台。

參考:2:svn:源**管理工具。

3:msbuilder:主要應用它來編譯專案。

4:nant:請參考此鏈結眾多功能中,我只應用了它複製檔案的功能。

5:winrar:應用方面:增量壓縮,即壓出的包只包含某乙個時間之後修改的檔案內容。這樣可以大大縮小包的容量。

1:sourcecontrol:源**管理,支援很多種源**管理軟體,這裡我用svn。

1>: trunkurl:專案路徑。

2>:workingdirectory:本地專案存放路徑。

3>:executable:svn程式路徑。

4>:username:源**使用者名稱

5>:password:源**使用者密碼

6>:timeout:超時時間。

2:triggers:觸發器配置,可以設定兩次執行持續整合的間隔定期執行。這裡我採用intervaltrigger。

3:tasks:任務配置

1>:modificationwriter/modificationreader:這兩個節點主要用來配置檔案修改記錄的日誌。每次更新的工程檔案資訊都會被記錄在節點所配置的檔案中。

2>:msbuild:工程編譯配置。

(1):executable:c:\windows\microsoft.net\framework\v3.5\msbuild.exe,如果是2.0版本需要修改下版本號。

(2):workingdirectory:工程解決方案所在資料夾。

(3):projectfile:解決方案檔名。

(4):buildargs:編譯時的一些引數設定。可以指定編譯的版本是release或者是debug等。

(5):timeout:超時時間。

3>:nant:ccnet直接支援nant的應用。

(1):executable:nant程式所在位置。

(2):basedirectory: 工程檔案位置

(3):buildargs:需要執行的引數和內容。

(4):buildfile:nant對應的指令碼檔案路徑

4:publishers:發布相關配置及編譯結果反饋設定。ccnet執行發布完後的後續操作,例如傳送執行結果郵件給相關人員參考和跟蹤。

1>:exec:主要是配置相關發布設定。

2>:executable:要執行的批處理檔案

3>:basedirectory:批處理檔案所在檔案目錄位址

待續......

Daily Build (每日構建)

在說每日構建之前需要先說乙個軟體 cruisecontrol.net,它是乙個將vss msbuild nuint fxcop等軟體連線起來的自動化構建平台。下來簡稱其為cc.net,整個的流程如下圖所示 今天配置了cc.net,以前一直是用vss進行源 管理,nunit進行單元測試,並沒有任何版本...

每日構建 三

這前的兩篇每日構建,寫的簡單了點,這裡在之前的基礎上做些改進,使得更加容易管理和配置。每日構建改進一 build檔案的共享。在進行每日構建時,對於複製檔案這部分功能我採用的是nant,nant最核心的部分是build檔案,一般乙個大型 有時分好多個解決方案,例如酒店專案,機票專案等等,所以對應不同的...

原創 每日構建實踐篇(一)

看了 joel spolsky的 軟體開發成功12法則 和 daily builds are your friend 對於每日構建的必要性和實用性都深有感觸。於是為自己的專案新增指令碼以實現快捷的每日構建,並記述這個嘗試的整個過程,方便以後參考。所謂的每日構建就是每天至少一次的重新建立整個工程,每日...