如何在jenkins管道控制台输出中抑制源脚本行echo



我正在Jenkins中编写一个管道作业,它显示了管道控制台输出中下游作业的输出控制台。到目前为止,该作业正在运行,但由于管道作业本身向输出中添加了所有回显行,因此很难读取输出。

Started by user john.doe@cdf.com
[Pipeline] Allocate node : Start
Running on swqa-pr-prod-slave-1 in /srv/jenkins-slave/workspace/UUT Automated Regression - 1.20
[Pipeline] node {
[Pipeline] echo
[Pipeline] echo
/////////////////////////////////////////////////
[Pipeline] echo
                Start Execution                  
[Pipeline] echo
/////////////////////////////////////////////////
[Pipeline] echo
[Pipeline] echo
[Pipeline] [monitor] echo
[monitor] [EnvInject] - Loading node environment variables.
[Pipeline] [monitor] echo
[monitor] Building remotely on swqa-pr-prod-slave-1 (pr-prod-linux-slaves) in workspace /srv/jenkins-slave/workspace/Process Map Components Lock Down - 1.00
[Pipeline] [monitor] echo
[monitor] [EnvInject] - Injecting environment variables from a build step.
[Pipeline] [monitor] echo
[monitor] [EnvInject] - Injecting as environment variables the properties content 
[Pipeline] [monitor] echo
[monitor] componentsLockDownScript=RegressionComponentsLockDown.py
[Pipeline] [monitor] echo
[monitor] modifyProcessMapXmlScript=ModifyXmlDom-1.20.py
[Pipeline] [monitor] echo
[monitor] uutAndNodePropertiesFile=DL380G8PR2-NodeData-(203).properties
[Pipeline] [monitor] echo
[monitor] 
[Pipeline] [monitor] echo
[monitor] [EnvInject] - Variables injected successfully.

在管道插件、Groovy或Jenkins中,是否有一个选项、配置、命令或任何东西可以让我抑制所有额外的"回声",使控制台输出更可读?

您真正想要的是JENKINS-26124。显然,您对此有某种变通方法,但其实现中存在缺陷,我们在问题中看不到这一点。

一个专门针对示例的部分解决方法

/////////////////////////////////////////////////
                Start Execution                  
/////////////////////////////////////////////////

您试图实现的块是在多行上使用单个echo调用

'''triple single quoted string'''(也可以包括插值字符串)。

发件人http://docs.groovy-lang.org/latest/html/documentation/#_triple_single_quoted_string,

三个单引号字符串是多行的。您可以跨越行边界跨越字符串的内容,而无需将字符串拆分为多个部分,也无需冲突或换行符:

您需要通过jenkins来完成吗?如果没有,您可以直接从控制台输出(假设您在linux控制台上获得输出):

cat YOUR_EXAMPLE_OUTPUT.txt | grep -v '[Pipeline]|[monitor]|^$' 

只会漏掉:

Started by user john.doe@cdf.com
Running on swqa-pr-prod-slave-1 in /srv/jenkins-slave/workspace/UUT Automated Regression - 1.20
/////////////////////////////////////////////////
                Start Execution                  
/////////////////////////////////////////////////

更新:如果你想让它"活"起来,跟随你的输出,并通过管道将其传输到一个行缓冲的grep:

tail -f YOUR_EXAMPLE_OUTPUT.txt | grep -v '[Pipeline]|[monitor]|^$' --line-buffered

最新更新