如何在AzureDevops中添加自定义管道

时间:2019-08-20 14:41:05

标签: azure-devops azure-pipelines

我在azureDevops中创建了CI / CD管道。 我需要为仅当先前的任务成功时才执行的条件添加自定义条件。

所以请帮助我 在自定义条件下我必须写什么?

我在屏幕下方附上了我需要添加一些自定义条件的地方。

enter image description here

3 个答案:

答案 0 :(得分:1)

  

我需要添加自定义条件,以便仅在先前的任务成功时才执行。

直接有一个选项 Only when all previous tasks have succeeded ,该选项用于确定所有以前的任务是否成功。

如果您要给出仅在上一个任务成功的情况下的条件,则没有这样的现成选项可供使用。我们可以使用拿破仑回答的解决方法:

  

write the result of the previous task to a variable and then check that variable in your condition

此外,我发布了此答案以强调条件的选择,我们需要使用 always() 而不是succeeded()或{{1} }。那是因为条件的语法适用于所有先前的步骤/工作:

查看文档Conditions,了解更多详细信息。

例如:

我在管道中添加了三个任务:

  1. 命令行-故意使其运行失败
  2. 运行内联Powershell-创建一个变量,为其分配一个值。

    failed()
  3. 命令行自定义条件检查该变量。

    Write-Host "##vso[task.setvariable variable=TaskStatus;]Succeeded"
    

enter image description here

enter image description here

如果我们使用条件and(always(), eq(variables['TaskStatus'], 'Succeeded')) succeeded(),则其执行是否仍受所有先前任务执行结果(第一个命令行任务)的影响

希望这会有所帮助。

答案 1 :(得分:0)

您可以将上一个任务的结果写入变量,然后根据情况检查该变量。

答案 2 :(得分:0)

我发现一些可以满足我的愿望任务的自定义条件。

in(variables ['Agent.JobStatus'],'Failed','Succeeded','SucceededWithIssues')

在上述自定义条件下,确定上一个任务将“失败”还是“成功”,将执行下一个任务。