2013-05-08 30 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