【问题标题】:azure devops: How to end a build successfully with warnings when a step failsazure devops:如何在步骤失败时成功结束构建并发出警告
【发布时间】:2021-12-24 15:28:57
【问题描述】:

当我的构建中的某个步骤失败时,我希望构建在那里结束,但会通过警告而不是失败来显示成功。我知道 continueOnError 有这个效果,但它仍然执行后续步骤。我想提前退出而不是执行那些,但仍然保持成功并带有警告状态。我怎样才能做到这一点?

    - task: DownloadBuildArtifacts@0
      displayName: 'Download build artifacts'
      continueOnError: true
      inputs:
        artifactName: 'build-artifacts'
        buildType: 'current'
        downloadType: 'single'
        downloadPath: '$(Agent.BuildDirectory)/s'
    - task: myNextTask@0
      inputs:...

换句话说,如果 downloadBuildArtifact 没有可下载的内容,我希望管道不执行 myNextTask,而是以“成功但有警告”结束进程

【问题讨论】:

  • 为什么不在检查文件夹之间有一个脚本,然后它可以退出并在需要时写入警告?

标签: azure-devops azure-pipelines


【解决方案1】:

仅凭条件没有简单的方法。

我怀疑你可以让它工作如下:

  • 将您的下载工件任务标记为出错成功。
  • 添加一个脚本任务,检查工件是否存在并相应地设置变量的值。
  • 为以下任务添加条件,仅在变量具有特定值时运行。

但请注意,如果下载工件任务因其他原因(如连接问题、中断、权限等)失败,则会隐藏错误。

另一种方法是在下载工件任务之前添加一个脚本,该脚本通过查询 REST API 检查所需工件的存在。然后它可以设置一个变量,用作所有后续任务的条件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2023-01-08
    • 2020-11-22
    相关资源
    最近更新 更多