我爲我的構建使用TFS 2012。如何獲取TFS構建自定義代碼活動失敗並不計數相關的變更集?
當構建在TFS中運行時,會得到自上次成功構建以來包含的變更集。這些被稱爲Associated Changesets
。
我有一個自定義構建活動,我想在某些條件下構建失敗。爲了觸發這個失敗,我只是拋出一個異常。
我遇到的問題是,即使引發異常(並且構建失敗),下一個構建也不包含Associated Changesets
中以前失敗構建的變更集。
有誰知道在構建工作流程的哪一點,變更集被標記爲成功?
我後面的行爲是,如果我的自定義活動的構建失敗,則此構建的變更集應出現在下一個構建的Associated Changesets
中。依此類推,直到構建成功。
的是否最終build失敗時的狀態?您在什麼時候拋出錯誤 - 您可能需要確保編譯狀態也失敗。檢查BuildDefinitions LastBuild LastGoodBuild Uris以查看那裏記錄了什麼tfs。我一直認爲變更集基於lastgoodbuild版本,但可能是工作區更新實際上獲取列表,看看您是否有輸出或無作爲工作區清理設置,並嘗試全部替代。 – drk
@drk - 構建以失敗狀態完成。 '如果TreatTestFailureAsBuildFailure和(TestStatus = Failed)'''後錯誤被拋出。我不知道如何檢查'LastGoodBuild'。我搜索了它,但找不到任何東西。我想我可能需要做一些類似'If TreatTestFailureAsBuildFailure And(TestStatus = Failed)'的條件,然後運行一個名爲'Set Status to Failed'的任務。 – gregpakes
您可能需要使用api,它描述瞭如何獲取構建定義對象 - http://www.almguide.com/2011/11/tfs-api-accessing-build-definition-values-programmatically/。您還可以通過構建工作流中的BuildDetails訪問它,這些構建工作流應該可以在http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.client.ibuilddetail.aspx中找到。 – drk