2013-05-08 54 views
0

我有一個自定義構建部署代碼,這是我需要指定構建質量的部署過程的一部分。目前我必須輸入質量,例如「準備部署」。我想添加一個自定義流程參數下拉菜單,其中包含已經爲該項目設置的所有構建質量。獲取構建質量列表

最初我開始創建自定義活動來獲得構建品質。 TFS有一個方法來做到這一點已經在使用。

buildServer.GetBuildQualities(teamProjectName) 

然而,自定義活動需要傳遞的TeamProjectName這是我感到困惑,我不知道如何通過這個論點

我們有很多項目,我想對它們全部使用相同的構建定義,所以我不能硬編碼團隊項目名稱。

回答

0

工作流程中有一個BuildDetail變量(類型IBuildDetail)。這有一個TeamProject屬性,其中包含正在運行的當前構建工作流程的團隊項目的名稱。

你應該作爲一種替代添加String輸入參數的活動,因此,它是在通過設置在XAML設計師BuildDetail.TeamProject值。

+0

嗯......我與跑進問題,是工藝參數負載構建執行之前。所以我需要一種方法在排隊構建時注入團隊項目名稱,而不是執行它。 – Lee 2013-05-08 20:12:11

0

使用自定義活動時,BuildDetail.Quality可以使用操縱簡單的作業。例如,你可以把序列低於Try Compile and Test元素的Finally子句中:

<Sequence DisplayName="Set Build Quality" > 
<If Condition="[BuildDetail.CompilationStatus = BuildPhaseStatus.Succeeded]" DisplayName="BuildDetail.CompilationStatus = BuildPhaseStatus.Succeeded" > 
    <If.Then> 
    <Assign DisplayName="Assign Build Quality Ready"> 
     <Assign.To> 
     <OutArgument x:TypeArguments="x:String">[BuildDetail.Quality]</OutArgument> 
     </Assign.To> 
     <Assign.Value> 
     <InArgument x:TypeArguments="x:String">["Ready for Initial Test"]</InArgument> 
     </Assign.Value> 
    </Assign> 
    </If.Then> 
    <If.Else> 
    <Assign DisplayName="Assign Build Quality Under Investigation"> 
     <Assign.To> 
     <OutArgument x:TypeArguments="x:String">[BuildDetail.Quality]</OutArgument> 
     </Assign.To> 
     <Assign.Value> 
     <InArgument x:TypeArguments="x:String">Under Investigation</InArgument> 
     </Assign.Value> 
    </Assign> 
    </If.Else> 
</If> 
</Sequence> 
+0

感謝您的回覆。但是我正在尋找一種將下拉列表添加到自定義流程參數(排隊新構建時的參數選項卡)的方法。這樣用戶就可以選擇他們想要推廣到其他環境的構建質量。 – Lee 2013-05-09 15:23:48