这个新的测试(beta)版本对表达式引擎进行了实质性的改进,包含了几个新的表达式对象和函数。我们还对阶段编辑器(stage editor)做了一些更新,实现了一些报告动作(actions)的自动报告生成,增加了数个支持Docker、Azure、SQL包、文件传输(File Transfer)和SSH的新的部署动作。
继续阅读有关所有新特性的详细信息。
Continua CI中的表达式引擎对用$和%字符表示的表达式对象和变量进行计算。当在表达式字段中输入此类表达式时,它还提供自动补全建议。现在我们进行了修改,包含了函数返回类型、函数链接、作为函数参数的嵌套函数、集合的选择和过滤,以及对表达式解析的许多改进。我们添加了若干个新函数、对象和集合,以便访问更多的值并允许您操作这些值。

例如,您现在可以使用下面的表达式来获得倒数第二个构建阶段完成的时间;
$Build.Stages.Item($Build.Stages.Count.Decrement()$).Finished.ToLongTimeString()$
|
可以通过链接函数来组合多个flags的结果,如这个表达式所示;
$Build.HasErroredStages.Or($Build.HasFailedStages$).Or($Build.HasWarnings$)$
|
或者使用下面的表达式来获得包含单词“merge”(忽略大小写)的构建中的第一个构建变更集的注释:
$Source.SuperFancyRepo.Changesets.First(Comment, Contains, "merge", true).Comment$
|
我们还包含了将变量值作为类型的函数,允许您对变量值使用属性或函数。
例如,您现在可以使用下面的表达式从使用DateTime提示符输入的变量中获取该周的缩写日期;
$Utils.GetDateTime(%DateTimeTest%).DayOfWeek.Substring(0, 3)$
|
使用表达式对数值变量进行更复杂的运算;
$Utils.GetNumber(%NumberTest%).Floor().Modulus(10).Multiply(100)$
|
或者使用这个表达式获取复选框选择变量中第一个被选择的值:
$Utils.GetString(%CheckboxSelectTest%).SplitWithQuotes(",").First()$
|
您可以在文档(documentation)的表达式对象(Expression Objects)页上看到可用表达式对象、集合和函数的完整列表。
自动补全功能也得到了改进,以便在建议列表中显示更多信息。现在为每个函数显示带有类型的参数列表。建议列表中的每个对象、集合和函数也会通过鼠标悬停的方式显示其描述。我们还消除了表达式自动补全中的一些恼人的怪异情况,即光标出现在错误的位置或结束字符被添加到错误的位置。
随着Continua CI的成熟,动作(和类别)的数量增加了。这会让您更难找到您需要的动作。因此,我们重新设计了动作列表。
默认情况下,类别列表被拉入下拉菜单,所有动作都列在下面。

现在可以以更加模糊的方式使用搜索框对动作进行过滤,部分匹配和关键字匹配都可用。

阶段(stage)按钮现在可以调整大小(直至调整到非常大)以适应阶段的名称。如果您的阶段名称很短,这意味着您可以在浏览器宽度中容纳更多的阶段。如果您的阶段名称很长,那么文本将不再脱离阶段按钮的边界。如果很长的阶段名称无法符合非常大的阶段按钮的大小,那么该阶段名称将被截断。
.png)
现在,所有动作都包含一个“验证”(Validate)按钮,允许您在保存之前检查所有字段是否具有有效值。
我们添加了一组高级动作,可用于部署您的构建的结果。以下动作只能在您购买了一个或多个并发构建许可证的情况下使用。
文件传输(File Transfer)动作:允许您通过FTP、FTPS和SFTP上传文件到远程服务器。
SSH运行脚本(SSH Run Script)动作:这可以用于在SSH服务器上运行脚本或命令列表。
Azure动作:提供了几个新动作,允许您将web应用程序、函数应用程序、文件和blobs部署到Azure。

目前,在设置报告时需要配置几个步骤。您必须确保在Workspace Rules中包含报告文件,并且在配置向导的“报告”部分中定义了该报告。此外,还建议在artifact rules中包含该报告文件,以便您可以控制何时清理它们。
为了简化此过程,我们添加了一个新选项,用于使用服务器自动将报告注册到生成报告的动作(FinalBuilder、ReportGenerator和新的Extent Reports动作)。勾选此选项将显示一个新选项卡,您可以在其中输入报告的名称、描述和运行顺序。当一个阶段完成时,此选项处于开启状态的动作生成的任何报告文件将自动复制到服务器工作区。主报告文件将注册为一个报告,所有报告文件都将注册为工件(artifacts)。
