9

我正在 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 中是否有选项、配置、命令或任何内容允许我抑制所有额外的“回声”以使控制台输出更具可读性?

4

3 回答 3

2

你真正要找的是JENKINS-26124。显然,您对此有某种解决方法,但其实现存在缺陷,我们在问题中看不到。

于 2016-05-02T19:37:29.360 回答
0

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

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

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

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

来自http://docs.groovy-lang.org/latest/html/documentation/#_triple_single_quoted_string

三重单引号字符串是多行的。您可以跨越行边界跨越字符串的内容,而无需将字符串拆分为几部分,无需连接或换行符转义字符:

于 2019-01-20T19:01:24.323 回答
-1

你需要通过詹金斯来做吗?如果不是,您可以直接从控制台 grep 出来(假设您在 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
于 2016-04-30T12:07:48.977 回答