VSTF Build Workflow(3)Hello World!

思路逐渐清晰了,Build Workflow的solution就是:修改Build Template(就是那个XAML),最后看Build的输出结果。

二话不说,我们先做一个Demo:

1.双击打开Build Template

image

Workflow还是我们之前看到的那个,没有变化,但是,请留意左下角的那三个蓝底白字的Tab:分别是Variables、Arguments和Imports

image

2. 点击Arguments,可以看到一份Arguments列表,它们都是实现定义好的,如下所示:

image

3.在列表的最下面,可以看到有一行Create Argument,

image

点击该行,创建一个新的Argument,设置它的Name为MessageA,其它属性为默认值。

image 

4.介绍完Argument,我们试玩一下Variable

你们不觉得Argument是一个全局变量么?至少在这个Template中,一次声明,处处使用。

而Variable则是有scope的。在父亲级别的Activity中定义一个Variable,在其中的所有子Activity都可以直接使用,但反之不行。

在这个Scenario中,我们选中Sequence这个最顶部的Activity(高亮显示表示我们选中了),

image

创建一个Variable,取名为MyMessage,并将其默认值设置为"Hello" + MessageA,那么这个Variable就随时随地都可以使用了。

image

5.接下来,我们要输出MyMessage这个Variable

为此,我们需要从Toolbox中拖出一个名为WriteBuildMessage的Activity,

image

把它放置于Template的Get the Build这个Activity之后:

image

看到那些红色惊叹号了没?这是因为这个Activity上还有一些Required的属性没有设置。

6.选中WriteBuildMessage,按F4打开属性窗体,

image

我们将Message属性设置为MyMesage(这是一个Variable),同时,为了在Workflow上显示得更有意义,我们将DisplayName修改为Show some words

image

于是,Workflow的外观变成了:

image

7.至此,一个Demo全都做好了,别忘了还有最后一步,就是把修改后的Template(即xaml)check in到VSTF中

怎么玩呢?玩Build也是一种学问。

1.重新打开我们之前创建的Build:

image

我们发现多了一个名为Show a message的字段,我们将其设置为World

2.现在可以执行Build了。

image

在Build完成所生成的输出界面中,我们并没有发现VSTF为我们额外生成些什么信息。

image

这是因为,还记得我们拖到Workflow中的WriteBuildMessage那个Activity么?仔细观察它的Inportance属性,被设置为Normal(另外两个值分别是High和Low)

image

而在VSTF的Build面板中,我们发现Logging Verbosity的值也是Normal(另外3个值分别是Minimal、Detailed和Diagnostic)

image

正是这两个地方设置的值不匹配才导致了我们所要的输出结果看不到的问题。

有2种解决方案:

1.在Workflow中将Importance设置为High。

2.在VSTF的Build面板中,将Logging Verbosity的值设置为Detailed(设置为Diagnostic也可以,但会生成大量冗余的信息)

无论哪一种方法,都会输出Hello World的信息,如下图所示:

image

总结一下:我们修改了Template(添加了Argument和Variable,以及一个Build Activity),于是在VSTF的Build Template中要求我们多输入一个Show a message参数,所以在Build的时候,会输出Hello World的信息。

这一切的中枢,就是那个Metadata对话框,通过它,我们把Workflow中的Argument和VSTF中的Build Template参数一一mapping起来。

原文地址:https://www.cnblogs.com/Jax/p/1950485.html