共用方式為


定義閘道簽入建置流程來驗證變更

開發人員簽入中斷組建的變更時,對於小型小組來說結果可能相當棘手,而對於大型小組來說,在面臨喪失生產力和進度延遲時,成本可能相當昂貴。您可以建立閘道簽入組建定義,保護部分或所有程式碼避免此問題發生。

本主題內容

  • 閘道簽入組建如何影響您的小組

  • 若要定義閘道簽入組建處理序

  • 改善建置處理序的功能與效能的方法

  • 避免封鎖你的小組

  • 手動執行閘道簽入組建和私用組建

閘道簽入組建如何影響您的小組

當你的小組使用閘道簽入組建程序,開發人員送出的變更就會放入擱置集放置並且建置系統會自動建立和測試。

[閘道簽入] 對話方塊

建置必須成功,才能完成簽入程序。如需詳細資訊,請參閱簽入由閘道簽入組建所控制的暫止變更

如果部分使用者必須略過閘道簽入,您可以針對使用者群組將 [依組建權限覆寫簽入驗證] 使用權限設為 [允許]。如需詳細資訊,請參閱Team Foundation Server 使用權限

若要定義閘道簽入組建處理序

必要的使用權限

若要執行這個程序,您的 [編輯組建定義] 權限必須已設定為 [允許]。如需詳細資訊,請參閱Team Foundation Server 使用權限

若要定義閘道簽入組建

  1. 在 [Team 總管] 中:

    1. 如果您尚未連接至要處理的 Team 專案,請連接到 Team 專案

    2. 選擇首頁圖示首頁, 然後再選組建圖示 [組建].

    3. 在 [組建] 頁面上,選取 [新增組建定義]。

    [新增組建定義] 視窗隨即出現。

  2. 觸動程序的索引標籤:

    • 選擇[Gated Check-in - 閘道簽入]

    • (選擇性)為提高組件程序的效率,選擇[合併且建置到]n屬性。如需更多資訊,請參閱 避免封鎖小組.

  3. 工作區索引標籤裡,在工作資料夾的表單中,此表單會將這個組建定義的版本控制資料夾對應至組建代理程式上的本機資料夾。

    提示提示

    請遵循這些方針:

    • 請確定建置流程函式正確並改善效能,包括所有資料夾和一些建置流程時所需的資料夾。

    • 請確定您指定之任何版本控制資料夾,此資料夾並未被其他閘道簽入組建定義的 [工作區] 索引標籤中所指定。否則,當使用者簽入這些資料夾時,系統會要求使用者決定要佇列的組建定義。

    • 如需更多指定檔案的詳細資訊,請參閱使用組建工作區

  4. 組建預設值 索引標籤上,為改善效能,請選擇[ 這個組建不會複製到 收件資料夾的輸出檔]。

  5. 處理程序 索引標籤上,在 建置流程範本中,預設會選取預設範本。要建置項目的參數,會指定方案或您想要建置專案的程式碼來建置。

  6. 流程索引標籤中,可設置參數使簽入符合無須延遲的團隊程式碼品質之的特定標準

    如需更多資訊,請參閱之後的改善組件流程功能和效能方針

  7. 指定組建處理選項至其他索引標籤。如需詳細資訊,請參閱建立組建定義

改善建置處理序的功能與效能的方法

若要盡可能縮短處理組建所需的時間,您應該在 [流程] 索引標籤上指定建置流程參數的值時考慮下列方針。

必要的節點

  • 要建置的項目要建置的組態:如果您將這個參數保留空白,就會針對每個方案和專案使用預設平台和組態。若要最佳化效能,請遵循下列方針:

    • 如果平台-組態配對的建置速度超過其他配對,請在這個參數中指定此配對。

    • 盡可能指定較少的平台-組態配對。

基本節點

  • 清除 [工作區]:請將此值設定為 (建議選項) 或 輸出,藉以改善效能。不過,如果工作區未清除,小組很可能會遺漏某些類型的缺失,例如在重構期間所引入的工作區。如需詳細資訊,請參閱根據預設範本定義建置流程

  • 執行程式碼分析:請將此值設定為 永不,藉以改善效能。

  • 來源和符號伺服器設定索引來源:請將此值設定為 False,藉以改善效能。

進階節點

  • 代理程式設定

    • 名稱篩選標記篩選:使用組建代理程式名稱或標籤,將此組建定義繫結至專為執行此組建所設計的組建代理程式。組建代理程式執行所在的硬體,採用的硬體應具備足夠的能力以迅速處理此組建,符合小組的效能期望。

      例如,小組可能不介意等待 15 分鐘讓組建完成。但是,您可能不想要等八小時,才能判斷目前程式碼是否已成功註冊。

    • 最長執行時間: 將此值設定合理範圍內較小的數字。例如,15 分鐘對您的小組來說不成問題,但八小時就太長。

  • 在失敗時建立工作項目:系統會將此值視為 False,即使您將它設定為 True 也一樣。

  • 停用測試

    • 請選取 True,藉以改善效能。

    • 如果您的程式碼必須通過特定測試,請選取 False,然後定義一組測試組建來執行。您可以藉由執行所需的測試改善效能。若要指定此測試,請依照分類或優先權篩選它們。如需詳細資訊,請參閱在建置流程中執行測試

  • 標籤來源:將此值設為 False

如需更多自訂建置流程範本的詳細資訊,請參閱根據預設範本定義建置流程

避免封鎖你的小組

每一個閘道簽入組建定義一次只能有一個執行中組建。因此,大型的活動小組比較可能開發閘道簽入組建的大型佇列。下列最佳做法可協助小組避免進度的阻礙:

  • 為提高在 觸發程序 索引標籤中組件流程的效率,選擇[合併且建置至]n 次級任務 的選項並指定您所想要同批次建置的最大簽入數量您可以使用選項,一般而言,您不可能中斷的風險。每個簽入個別認可或遭拒。

    例如,如果三個簽入在同一批次一起建置,但建置不成功,此系統佇列裡三個簽入會個別組建。

    不過,這個選項會出現妨礙其他簽入的風險。例如,當多個簽入修改相同檔案且版本控制發生衝突時,會發生妨礙的狀況。在這種情況下,先前的簽入動作會被執行,而最新簽入遭拒。

  • 定義組建,讓組建代理程式僅執行驗證要簽入之程式碼品質所需的工作。如需詳細資訊,請參閱本主題前面的流程索引標籤的設定方針。

  • 讓具備強大硬體 (例如,快速的處理器和硬碟) 的組建電腦專屬於閘道簽入組建定義使用的組建代理程式。

手動執行閘道簽入組建和私用組建

想要更確信所簽入之變更的開發人員可以手動將擱置集的組建排入佇列。當他們採取這種方法時,就可以針對組建成功時,系統將採取的下一個步驟指定下列其中一個選項:

  • 系統會檢查變更 (手動線閘道簽入組建):此選項對不需要閘道簽入,但是仍然想要讓開發人員在簽入之前就會驗證他們的程式碼的小組很有幫助。

  • 系統不會簽入變更 (私用組建):當開發人員想要驗證擱置集中的某些變更,但是不想要簽入這些變更時,就可以使用這個選項。

如需詳細資訊,請參閱將組建排入佇列