如何从单个 Jenkins Pipeline 并行块获取 stdout 和 stderr?
How to get stdout and stderr from single Jenkins Pipeline parallel blocks?
我在我的 Jenkinsfile 中使用了一个 parallel
块来同时执行一些测试,但是所有的输出都变得混乱了。
这是我的 Jenkinsfile 的摘录,例如:
// do some IT against different databases
stage name: 'IT'
parallel (
mysqlIT: {
node {
executeMysqlIT()
}
},
oracleIT: {
node {
executeOracleIT()
}
}
)
请注意,按照建议 here 我是 运行 每个 parallel
中的一个新 node
,因此它们得到了适当的并行化,并且每个都得到了它的自己的工作区。
我应该怎么做才能让 Jenkins 显示 parallel
块的分离输出?
在您的作业的构建页面上,左侧有一个 link "Pipeline steps"。在树状结构中,您可以找到您的作业具有的所有步骤 运行,包括并行步骤。您可以进入每个步骤并使用左侧的 link 访问其控制台日志。或者,您可以使用同一行右侧的 "terminal" 图标。
单击它,您将看到仅在该步骤中生成的控制台日志,不会与其他步骤同时 运行 混合。如果一个步骤或多个并行步骤仍在进行中,它们的日志将在每个控制台日志页面上动态更新。
提供了一种从并行块中获取日志的方法
- 作为管道代码中的字符串
- 或保存为 运行
的神器
那里使用的库还提供了内部 ID 的访问器,我认为可以用来生成指向 "pipeline steps" 个文件的链接
我在我的 Jenkinsfile 中使用了一个 parallel
块来同时执行一些测试,但是所有的输出都变得混乱了。
这是我的 Jenkinsfile 的摘录,例如:
// do some IT against different databases
stage name: 'IT'
parallel (
mysqlIT: {
node {
executeMysqlIT()
}
},
oracleIT: {
node {
executeOracleIT()
}
}
)
请注意,按照建议 here 我是 运行 每个 parallel
中的一个新 node
,因此它们得到了适当的并行化,并且每个都得到了它的自己的工作区。
我应该怎么做才能让 Jenkins 显示 parallel
块的分离输出?
在您的作业的构建页面上,左侧有一个 link "Pipeline steps"。在树状结构中,您可以找到您的作业具有的所有步骤 运行,包括并行步骤。您可以进入每个步骤并使用左侧的 link 访问其控制台日志。或者,您可以使用同一行右侧的 "terminal" 图标。
单击它,您将看到仅在该步骤中生成的控制台日志,不会与其他步骤同时 运行 混合。如果一个步骤或多个并行步骤仍在进行中,它们的日志将在每个控制台日志页面上动态更新。
- 作为管道代码中的字符串
- 或保存为 运行 的神器
那里使用的库还提供了内部 ID 的访问器,我认为可以用来生成指向 "pipeline steps" 个文件的链接