首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure多级管道:有条件跳过一个阶段,但不跳下一个阶段

Azure多级管道:有条件跳过一个阶段,但不跳下一个阶段
EN

Stack Overflow用户
提问于 2020-02-14 00:35:40
回答 4查看 7K关注 0票数 6

我有一个Azure多级CI/CD管道。它有测试和UAT部署的阶段。

如果测试成功或被跳过,我希望UAT发行版运行,但如果失败,则不运行。

我不能。无论我尝试什么,如果跳过测试,UAT也会被跳过。除非我使用always(),但是即使测试失败,UAT也会运行。

代码语言:javascript
复制
  ...
  - stage: Test
    condition: and(succeeded(), ne(variables['build.sourceBranchName'], 'DoUAT')) # Skip for UAT deployment tests
    ...

  - stage: UAT
    condition: and(succeeded(), in(variables['build.sourceBranchName'], 'master', 'DoUAT')) # Only deploy off master branch and branch to test UAT deploys.
    ...

我如何跳过一个阶段而不是下一个阶段?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-02-14 09:06:24

您可以使用not(failed('Test'))条件,请尝试以下条件。

代码语言:javascript
复制
- stage: UAT
    condition: and(not(failed('Test')), in(variables['build.sourceBranchName'], 'master', DoUAT')) # Only deploy off master branch and branch to test UAT deploys.
    ...

我做了测试,结果成功了,看下面的截图。

票数 11
EN

Stack Overflow用户

发布于 2020-08-15 21:18:29

我正在寻找类似的信息,并发现您可以对依赖结果执行"IN“子句。在关于表达式的Microsoft中找到了这个

代码语言:javascript
复制
- job: c
  dependsOn:
  - a
  - b
  condition: |
    and
    (
      in(dependencies.a.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'),
      in(dependencies.b.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
    )
票数 4
EN

Stack Overflow用户

发布于 2022-03-16 05:18:28

贷给https://github.com/MicrosoftDocs/azure-devops-docs/issues/7738#issuecomment-611815486

@EdH

代码语言:javascript
复制
condition: not(or(failed(), canceled()))

与多个前期阶段一起工作,并根据您的需要工作。如果以前的所有阶段都是succeededskipped,则运行这个阶段,但如果它们是failedcancelled,则不运行。

备注:

  • 跳过并不会导致failed()或cancelled()为真。
  • 跳过确实会导致succeeded()为false。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60218455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档