我正在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