虽然所有的依赖项似乎都存在,但Stage被跳过了。
以下是管道的需求:
这是yaml:
stages:
- stage: ToSkip
jobs:
- job: Skip
steps:
- powershell: |
Write-Host "Something"
- stage: FakeTests
jobs:
- job: PassTest
steps:
- powershell: |
Write-Host "Test Passed"
- job: FailTest
steps:
- powershell: |
Write-Host "Test Failed"
exit 1
- stage: NextTests
dependsOn:
- FakeTests
- ToSkip
condition: |
and(
in(stageDependencies.FakeTests.result, 'Succeeded', 'SucceededWithIssues', 'Skipped', 'Failed'),
in(stageDependencies.ToSkip.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
)
jobs:
- job: NextPassTest
steps:
- powershell: |
Write-Host "Test Passed"此YAML用作AzureDevOps管道。但是,如果跳过“ToSkip”和“FakeTests”,也跳过“NextTest”。为什么会这样呢?如何纠正呢?

发布于 2022-04-15 02:36:06
通过查看stageDependencies JSON结构,在下没有名为“结果”的键。你应该通过
stageDependencies...result
"stageDependencies": {
"<STAGE_NAME>": {
"<JOB_NAME>": {
"result": "Succeeded|SucceededWithIssues|Skipped|Failed|Canceled",
"outputs": {
"stepName.variableName": "value"
}
},
"...": {
//another job
}
},
"...": {
//anotherstage
}
}用你的代码试试这个
condition: |
and(
in(stageDependencies.FakeTests.PassTest.result, 'Succeeded', 'SucceededWithIssues', 'Skipped', 'Failed'),
in(stageDependencies.FakeTests.FailTest.result, 'Succeeded', 'SucceededWithIssues', 'Skipped', 'Failed'),
in(stageDependencies.ToSkip.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
)有关更多信息,您可能希望签出此页。
https://stackoverflow.com/questions/71708001
复制相似问题