获取构建质量列表

时间:2013-05-08 19:29:53

标签: tfs tfs2010 tfsbuild

我有一个部署代码的自定义构建,我需要指定构建质量的部署过程。目前我必须输入质量,例如“准备部署”。我想添加一个自定义流程参数下拉列表,其中包含已为项目设置的所有构建质量。

最初,我开始创建自定义活动以获得构建质量。 TFS有一种方法可以使用:

buildServer.GetBuildQualities(teamProjectName)

但是,自定义活动需要传入TeamProjectName。这是我感到困惑的地方,我不明白如何传递这个参数。

我们有很多项目,我想对所有项目使用相同的构建定义,因此我无法对团队项目名称进行硬编码。

2 个答案:

答案 0 :(得分:0)

工作流程中有一个BuildDetail变量(类型为IBuildDetail)。它有一个TeamProject属性,其中包含正在运行的当前构建工作流的团队项目的名称。

您应该为活动添加String输入参数,并将XAML设计器中的值设置为BuildDetail.TeamProject,以便传入。

答案 1 :(得分:0)

作为使用自定义活动的替代方法,可以使用简单的分配来操作BuildDetail.Quality。例如,您可以将以下序列放在Finally元素的Try Compile and Test子句中:

<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>