Azure devops Azure开发人员操作警告内联shell脚本 问题

Azure devops Azure开发人员操作警告内联shell脚本 问题,azure-devops,azure-pipelines,azure-pipelines-yaml,Azure Devops,Azure Pipelines,Azure Pipelines Yaml,我正在通过Azure Dev Ops管道中的SSH在远程机器上运行内联shell脚本。根据某些情况,运行管道应抛出自定义警告 该功能可以正常工作,尽管方式非常扭曲:当运行管道时,警告总是出现。更准确地说: 如果不满足条件,则警告出现一次 如果满足条件,警告将出现两次 下面的例子应该清楚地说明这个问题 例子 假设我们有以下.yaml管道模板。请根据您的设置调整池和sshEndpoint设置 pool: 'Default' steps: - checkout: none displayN

我正在通过Azure Dev Ops管道中的SSH在远程机器上运行内联shell脚本。根据某些情况,运行管道应抛出自定义警告

该功能可以正常工作,尽管方式非常扭曲:当运行管道时,警告总是出现。更准确地说:

  • 如果不满足条件,则警告出现一次
  • 如果满足条件,警告将出现两次
下面的例子应该清楚地说明这个问题

例子 假设我们有以下
.yaml
管道模板。请根据您的设置调整
sshEndpoint
设置

pool: 'Default'

steps:

- checkout: none
  displayName: Suppress regular checkout

- task: SSH@0
  displayName: 'Run shell inline on remote machine'
  inputs:
    sshEndpoint: 'user@machine'
    runOptions: inline
    inline: |
     if [[ 3 -ne 0 ]]
     then
       echo "ALL GOOD!"
     else
      echo "##vso[task.logissue type=warning]Something is fishy..."
     fi
    failOnStdErr: false
预期行为 因此,上面的bash脚本应该响应
都很好因为3不是0。因此,不应触发警告消息

当前行为 但是,当我在Azure Dev Ops中运行上述管道时,步骤日志概述显示有一个警告:

日志本身如下所示(连接详细信息已关闭):

所以即使代码取了
都很好代码路径,将显示警告消息。我认为这是因为整个bash脚本都与日志相呼应——但这只是一个假设

问题: 如何确保警告仅在满足条件时才显示在执行的管道中?

看起来像。您可能会欺骗日志解析器:

HASHHASH="##"
echo $HASHHASH"vso[task.logissue type=warning]Something is fishy..."

(一些解析似乎也发生了).

嘿!这是一个很好的技巧,但它似乎抑制了所有的警告-这也不是我想要的。如果满足条件,我仍然希望看到警告出现。不过,它需要进行一些小的更正:
echo$HASHHASH“vso[task.logissue type=warning]有些可疑…”
如果您做出更改,我可以接受您的答案;)