Azure devops Azure开发人员操作警告内联shell脚本 问题
我正在通过Azure Dev Ops管道中的SSH在远程机器上运行内联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
- 如果不满足条件,则警告出现一次
- 如果满足条件,警告将出现两次
.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]有些可疑…”
如果您做出更改,我可以接受您的答案;)