定義閘道簽入組建來驗證變更
開發人員簽入中斷組建的變更時,對於小型小組來說結果可能相當棘手, 而對於大型小組來說,成本可能相當昂貴,因為將面臨喪失生產力和進度延遲的成本。
您可以建立閘道簽入組建定義,保護部分或所有程式碼基底避免此問題發生。
本主題內容
閘道簽入組建如何影響您的小組
定義閘道簽入組建
流程索引標籤的設定方針
閘道簽入組建如何執行
自動執行閘道簽入組建
手動執行閘道簽入組建和私用組建
閘道簽入組建如何影響您的小組
建立閘道簽入組建時,開發人員送出的變更就會放入擱置集,並且自動在您的建置系統中建置。 建置必須成功,才能完成簽入程序。 如需詳細資訊,請參閱簽入由閘道簽入組建所控制的暫止變更。
如果部分使用者必須略過閘道簽入,您可以針對使用者群組將 [依組建權限覆寫簽入驗證] 使用權限設為 [允許]。 如需詳細資訊,請參閱 Team Foundation Server 使用權限。
定義閘道簽入組建
必要的使用權限
若要執行這個程序,您的 [編輯組建定義] 權限必須已設定為 [允許]。 如需詳細資訊,請參閱 Team Foundation Server 使用權限。
若要定義閘道簽入組建
在 Team 總管中,按一下 Team 專案。
按一下 [建置] 功能表上的 [新增組建定義]。
[新增組建定義] 視窗隨即出現,其中會顯示 [一般] 索引標籤。
在 [組建定義名稱] 方塊中輸入名稱。
在 [觸發程序] 索引標籤上,按一下 [閘道簽入只有在順利合併並建置提交的變更時,才接受簽入]。
按一下 [工作區] 索引標籤。
[工作資料夾] 資料表隨即出現。 此資料表會將這個組建定義將控制的版本控制資料夾對應至組建代理程式上的本機資料夾。 如需詳細資訊,請參閱刪除已完成的組建。
秘訣 請確定您為此定義指定的任何版本控制資料夾,並未在任何其他閘道簽入組建定義的 [工作區] 索引標籤中指定。 否則,將檔案簽入這些資料夾時,系統會要求您決定要佇列的組建定義。
按一下 [流程] 索引標籤,然後設定建置流程參數,以便確保簽入符合小組的特定程式碼品質標準。
不過,針對大型小組製作的大型程式碼基底,您應在驗證程式碼品質的目標與避免開發人員之不必要延遲的目標之間取得平衡。 如需詳細資訊,請參閱本主題後面的流程索引標籤的設定方針。
按一下 [組建預設值] 和 [保留原則] 索引標籤,並套用各索引標籤中適當的設定。
如需詳細資訊,請參閱建立基本組建定義。
流程索引標籤的設定方針
若要盡可能縮短處理組建所需的時間,您應該在 [流程] 索引標籤上指定建置流程參數的值時考慮下列方針。
必要的節點
要建置的項目、要建置的組態:如果您將這個參數保留空白,就會針對每個方案和專案使用預設平台和組態。 若要最佳化效能,請遵循下列方針:
如果平台-組態配對的建置速度超過其他配對,請在這個參數中指定此配對。
盡可能指定較少的平台-組態配對。
基本節點
自動化測試:如果您的程式碼必須通過特定測試才會有效,請設定測試回合來執行這些測試。 當您設定測試回合時,請務必依照分類或優先權篩選,以便僅執行您最需要的測試。 如需詳細資訊,請參閱使用預設範本定義組建。
清除工作區:將此值設定為 [無] (建議) 或 [輸出]。 不過,如果工作區未清除,就很可能遺漏某些類型的缺失。 如需詳細資訊,請參閱使用預設範本定義組建。
執行程式碼分析:將此值設為 [永遠不要]。
來源和符號伺服器設定、索引來源:將此值設定為 False。
進階節點
代理程式設定
名稱篩選或標記篩選:使用組建代理程式名稱或標籤,將此組建定義繫結至專為執行此組建所設計的組建代理程式。 組建代理程式執行所在的組建電腦,採用的硬體應具備足夠的能力,能迅速處理此組建以符合小組的效能期望。
例如,小組的開發人員可能不介意等待 15 分鐘讓組建完成。 但是開發人員不可能接受等待八小時才得知其程式碼是否成功簽入。
最長執行時間:將此值設為合理範圍內的較小數字,以便持續進行整合建置。 例如,15 分鐘對您的小組來說不成問題,但八小時就太長。
將輸出複製至置放資料夾:系統會將此值視為 False,即使您將它設定為 True 也一樣。
在失敗時建立工作項目:系統會將此值視為 False,即使您將它設定為 True 也一樣。
標籤來源:將此值設為 False。
如需如何設定建置流程參數值的詳細資訊,請參閱使用預設範本定義組建。
閘道簽入組建如何執行
每一個閘道簽入組建定義一次只能有一個執行中組建。 因此,大型的活動小組比較可能開發閘道簽入組建的大型佇列。 下列最佳做法可協助您的小組避免阻礙進度:
讓具備強大硬體 (例如,快速的處理器和硬碟) 的組建電腦專屬於閘道簽入組建定義使用的組建代理程式。
定義組建,讓組建代理程式僅執行驗證要簽入之程式碼品質所需的工作。 如需詳細資訊,請參閱本主題前面的流程索引標籤的設定方針。
您可以自動或手動執行閘道簽入組建。
自動執行閘道簽入組建
發生下列其中一個事件時,系統就會自動執行閘道簽入組建:
已經定義組建,並且在組建定義的 [觸發程序] 索引標籤上選取了 [閘道簽入] 核取方塊。
某人嘗試簽入一個或多個變更,而這些變更與組建定義之 [工作區] 索引標籤中的任何對應資料夾交集。
手動執行閘道簽入組建和私用組建
想要更確信所簽入之變更的開發人員可以手動將擱置集的組建排入佇列。 當他們採取這種方法時,就可以針對組建成功時,系統將採取的下一個步驟指定下列其中一個選項:
系統會簽入變更 (手動閘道簽入組建):對於想要在簽入之前驗證程式碼,但是所屬小組並未使用閘道簽入觸發程序的開發人員而言,這個選項可能很有用。
系統不會簽入變更 (私用組建):當開發人員想要驗證擱置集中的某些變更,但是不想要簽入這些變更時,就可以使用這個選項。
如需詳細資訊,請參閱將組建排入佇列。