当前位置: 代码迷 >> 综合 >> Jenkins Tips:去掉pipeline中shell命令的调试信息
  详细解决方案

Jenkins Tips:去掉pipeline中shell命令的调试信息

热度:99   发布时间:2023-09-19 22:48:17.0

在Jenkins的Console Output中有时会看到‘+’开头的shell命令调试信息,看起来比较混乱。原因是Jenkins默认用‘-xe’的选项去运行‘sh’命令。例如如下pipeline会产生后续的输出。

pipeline {agent nonestages {stage('Example') {steps {node('master') {sh 'dmesg | grep raspberrypi | grep soc' }}}}
}

输出:

[Pipeline] sh
+ dmesg
+ grep raspberrypi
+ grep soc

解决方法是自定义一个运行shell脚本的函数,并在每个命令行前加入‘#!/bin/sh -e\n’选项。

def mysh(cmd, returnStatus) {return sh (script: '#!/bin/sh -e\n'+ cmd, returnStatus: returnStatus)
}pipeline {agent nonestages {stage('Example') {steps {node('master') {mysh ('dmesg | grep raspberrypi | grep soc', true)}}}}
}

参考链接:https://stackoverflow.com/questions/39891926/how-to-disable-command-output-in-jenkins-pipeline-build-logs

  相关解决方案