在TFS版本管理器中动态创建阶段

时间:2019-07-23 06:41:25

标签: tfs

我们有一个运行许多测试的发布管道,现在我们希望将每个测试作为管道的不同阶段来运行。问题是每个用例都有不同数量的测试,因此在设计管道时无法固定阶段。

有没有一种方法可以在运行时创建阶段。 (当发布已创建并正在运行时)

2 个答案:

答案 0 :(得分:1)

实际上,没有,没有这种方法可以处理这种情况。在运行Release期间无法创建该阶段。

阶段是发布管道中的主要部分:“运行功能测试”,“部署到预生产”和“部署到生产”是发布阶段的很好示例。

发布管道中的一个阶段由作业任务组成。也不建议将每个测试作为管道的不同阶段来运行。

相反,您可以使用一些过滤器和多个测试任务来分割案例。另请参阅此博客,该博客可能会有用:Staged execution of tests in Azure DevOps Pipelines

答案 1 :(得分:0)

不,这不会发生,因为发布管道是当时存在的管道及其任务的“快照”。这意味着在启动发布管道之后被修改的任何相关任务组将不会在创建的发布管道中进行更改,因为该发布管道“快照”已经创建并正在运行。这实际上是一件好事,因为您不希望在运行时更改管道并且进行更改。回到问题所在。有一些解决方法,但是您不会喜欢它们:

  1. 使用REST API和Release Pipeline JSON模板动态地动态创建Release Pipeline(以及其各个阶段以及与每个阶段相关的任务)。这有点复杂,但是可以做到。您需要了解json内的元素和所需的最少json元素之间的关系才能使其正常工作,这将在try-until-it-works的基础上进行。

  2. 使用阶段前提条件检查,但是它们可能还不够成熟,无法检查您可能正在寻找的某些条件。甚至使用Azure Function应用程序进行Gate检查都可能在这里有所帮助,但这要么是FAIL要么是PASS。但是,还是请看一下可以扩展您可能需要运行的前提条件检查的Azure Function应用程序,因为我不知道您将其用作条件。我喜欢Azure Function应用程序!

  3. 我不知道您如何运行测试,但是可以将PowerShell作为任务运行。因此,在一个阶段(运行测试之前)中,您可以运行PowerShell脚本来评估条件用例以运行测试并设置一些变量。然后,在下一步中将实际运行测试集“自定义条件”以运行“测试任务”,并评估您在上一个PowerShell步骤中设置的变量,以运行“测试任务”或跳过它。缺点是它将舞台显示为“ GREEN”,而不是变灰,就像跳过了它一样,就像您使用了预部署条件一样。您可能想在“发布管道”中显示该测试实际上已被跳过,以及该测试是否通过或失败。

  4. 我确定我错过了另一个选择,但这些都不在我的脑海。

让我知道您的想法。