Azure DevOps SQL Server数据库部署任务中的错误不会使管道失败

时间:2020-07-23 11:27:51

标签: sql-server azure-devops azure-pipelines-release-pipeline

我正在使用Azure DevOps SQL Server database deploy任务通过其有效的内联SQL功能来运行SQL Server代理作业。

但是,如果作业失败,我有一些逻辑会如下所述从SQL脚本生成错误。当脚本错误时,该错误会正确显示在任务日志中,但是不会使整个任务失败,而是返回succeeded状态。这使开发人员感到困惑,因为他们认为更改实际上并没有破坏工作。

无论如何,还是会冒起SQL脚本生成的错误,以便SQL Server database deploy任务返回failed状态而不是succeeded状态。

请在下面查看该发行版的屏幕截图和YAML:

enter image description here

enter image description here

steps:
- task: SqlDacpacDeploymentOnMachineGroup@0
  displayName: 'Run SQL Agent Job'
  inputs:
    TaskType: sqlInline
    InlineSql: |
     /* SQL Agent Job Logic Here... */
     
     /* Raise error if job fails */
     
     RAISERROR('##vso[task.logissue type=error]]%s job has either failed or is not in a good state!', 16, 1, 'JobName') WITH LOG
    DatabaseName: master
    AdditionalArgumentsSql: '-QueryTimeout 1800 -IncludeSqlUserErrors -OutputSqlErrors 1 -Verbose'

1 个答案:

答案 0 :(得分:0)

Azure DevOps SQL Server数据库部署任务中的错误未使管道失败

您可以尝试使用Logging Commands从内联Sql脚本构建失败:

##vso[task.complete result=Failed;]DONE

##vso[task.complete]current operation

result=Succeeded|SucceededWithIssues|Failed

完成当前任务的时间轴记录,设置任务结果和当前时间 操作。如果未提供结果,则将结果设置为成功。例: ##vso[task.complete result=Succeeded;]DONE