azure-devops - Azure 多级管道 : conditionally skip one stage but not the next

标签 azure-devops continuous-integration continuous-deployment multistage-pipeline

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

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

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

  ...
  - 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.
    ...

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

What I get vs what I want

最佳答案

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

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

我测试过并且有效,请查看以下屏幕截图。

enter image description here

关于azure-devops - Azure 多级管道 : conditionally skip one stage but not the next,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60218455/

相关文章:

maven - 当在Team City CI上调用Gradle安装任务时,Maven Artifact 会部署到错误的位置

tfs - 在VSTS/VSO中解决任务(敏捷模板)

azure-devops - VSTS - 解决方案文件中的构建定义错误

tfs - 在 VisualStudio.com 上启用 Codelens

.net-core - dotnet 发布输出文件夹?

c# - 如何使用 Visual Studio 通过 Xamarin UITest 执行 CI

azure-devops - 仅当先前的任务错误时运行 VSTS 生成/发布任务

github - 如何为多部署配置只执行一次 Travis CI 'before_deploy' 步骤?

python - 工作队列与持续部署框架

ftp - 自动 FTP 部署 : is there any automatic/programmable tool available?