使用閘道簽入建置流程來驗證變更

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

注意事項注意事項

閘道簽入組建只能在 TFVC 圖示 TFVC Team 專案中使用。它們無法在 Git 圖示 Git Team 專案中使用。

您想要執行甚麼工作?

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

  • 定義閘道簽入建置流程

  • 改善建置流程功能與效能的方針

  • 避免封鎖您的小組

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

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

當您的小組制定了閘道簽入建置流程之後,開發人員所送出的變更就會放入擱置集中,然後建置系統會自動加以建置並可能會進行測試。

[閘道簽入] 對話方塊

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

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

定義閘道簽入建置流程

  1. 在 [Team Explorer] 中,確認您已連接到 Team 專案 (鍵盤:Ctrl + 0、C),然後開啟 [組建] 頁面 (鍵盤:Ctrl + 0、B)。

  2. 選擇 [新增組建定義] 連結或選取組建,開啟捷徑功能表,然後選擇 [編輯組建定義]。

    提示

    如果出現 TF225001 錯誤訊息,請設定組建控制器

  3. 在 [觸發程序] 索引標籤上:

    • 選擇 [閘道簽入]。

    • (選擇性) 若要提高建置流程的效率,請選取 [合併並建置,最多到 n 次提交]。如需詳細資訊,請參閱避免封鎖您的小組。

  4. 在 [來源設定] 索引標籤上的 [工作資料夾] 資料表中,將此組建定義將控制的版本控制資料夾對應至組建代理程式上的本機資料夾。

    提示

    請遵循這些方針:

    • 若要確定建置流程正確運作並改善效能,請只包括所有包含建置流程所需檔案的資料夾。

    • 確認您未指定在另一個閘道簽入組建定義的 [工作區] 索引標籤中所指定的任何版本控制資料夾。否則,當使用者將檔案簽入至這些資料夾時,建置系統會要求使用者決定要排入佇列的組建定義。

    • 如需有關如何指定對應的詳細資訊,請參閱使用組建工作區

  5. 若要提升效能,請在 [組建預設值] 索引標籤上選擇 [這個組建不會將輸出檔案複製到置放資料夾]。

  6. 在 [流程] 索引標籤上,於 [建置] 底下的 [專案] 參數中,指定您要建置的方案或程式碼專案。

  7. 在 [流程] 索引標籤上設定參數,以確保簽入符合您小組的特定程式碼品質標準,避免不必要地延遲開發人員。

    如需詳細資訊,請參閱本主題稍後的改善建置流程的功能與效能。

  8. 指定其他索引標籤上的建置流程選項。 如需詳細資訊,請參閱建立或編輯組建定義

改善建置流程的功能與效能

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

TF 版本控制或 Git

  • 清除工作區清除儲存機制:如需較快的效能,請將這個值設為 [False]。 這項設定可能會造成您的小組遺漏某些缺失的類型,例如在重構期間引入的缺失。

組建

  • 組態:如果您讓這個參數保持空白,則每個方案和專案都會使用預設平台和組態。 若要最佳化效能,請遵循下列方針:

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

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

  • 清除組建:如需更快的效能,請將這個參數設定為 False。 這項設定可能會造成您的小組遺漏某些缺失的類型,例如在重構期間引入的缺失。

組建、進階

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

測試、進階

  • 停用測試

    • 如需更快的效能,請選取 [True]。

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

發行符號

  • 發行符號的路徑:如需較快的效能,請將這個值保持空白。

進階

  • 代理程式設定

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

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

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

如需預設範本建置流程參數的詳細資訊,請參閱將預設範本用於您的建置流程

避免封鎖您的小組

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

  • 若要提高建置流程的效率,請選取 [觸發程序] 索引標籤中的 [合併並建置,最多到 n 次提交] 選項,並指定您要在任何指定批次中同時建置的最大簽入數量。 一般而言,藉由使用這個選項,您不太會有發生中斷的風險。 每個簽入都是個別認可或遭拒。

    例如,如果三個簽入在同一批次中一起建置,但建置不成功,系統就會將全部三個簽入的個別組建排入佇列。

    不過,這個選項會存在某個簽入妨礙其他簽入的風險。 例如,當多個簽入修改同一個檔案且版本控制發生衝突時,就會發生此問題。 在這種情況下會認可較早的簽入,較晚的簽入則會遭到拒絕。

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

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

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

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

  • 系統會簽入變更 (手動閘道簽入組建):此選項對於不需要閘道簽入,但是仍要讓開發人員在簽入之前主動驗證其程式碼的小組很實用。

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

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