我想知道是否可以通过某种方式知道azure开发人员在构建管道中执行上一步的结果。
详细解释我的查询:可以说,在天蓝色的Devops中,我有一个大约10个步骤的构建管道,该管道执行一些任务,例如准备构建,构建解决方案,同步以及其他一些事情。
现在我想知道某些步骤执行的状态是失败还是成功:
依此类推,直到步骤10。
我的问题是如何实现这一目标?如何根据前一步的执行结果使几个步骤的执行不被执行,而其余的则应该被执行。
[请注意,我仅在所有先前任务均成功完成但仍无法正常工作时,才尝试像Execute这样放置。它仍然执行步骤4和5。
还请注意,STEP 7具有与其相关的一些自定义条件,该条件可以正常工作。仅提供此注释是为了提供更多有关如何定义或创建构建管道任务的上下文。
请帮助我解决此问题或实现这种行为。
您可以有一个自定义条件,如果先前的步骤失败failed()
(至少一个先前的步骤),则仅执行步骤3和4,但是之后的所有其他步骤将全部跳过(如果他们希望所有步骤都成功) ),否则将全部执行(如果将它们设置为succeededOrFailed()
。
您在这个决定中不能真正保持动态。
您可以在没有阶段和工作的情况下完成您想做的事情,但是我认为您所描述的情况是管道中multiple Jobs的理想人选。这是一个遵循您问题逻辑的示例yaml管道。 dependsOn:
和condition:
的组合将帮助您在管道中构建这些类型的依赖图。
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
jobs:
- job: Foo
displayName: (Steps 1-2)
steps:
- script: echo Hello, world!
displayName: Number 1
- script: echo Hello, world!
displayName: Number 2
- job: Bar
displayName: (Step 3)
dependsOn: Foo
steps:
- script: 0\0
displayName: Number 3
- job: Qux
displayName: (Step 4-5)
dependsOn: Bar
condition: failed()
steps:
- script: echo Hello, world!
displayName: Number 4
- script: echo Hello, world!
displayName: Number 5
- job: baz
displayName: (Step 6+)
dependsOn: Qux
condition: always()
steps:
- script: echo Hello, world!
displayName: Number 6
- script: echo Hello, world!
displayName: Number 7