使用 jenkins 工作流组合来自不同节点的 ArtifactArchiver 和 JunitResultsArchiver
Combining ArtifactArchiver and JunitResultsArchiver from different nodes using jenkins workflow
如何在并行构建过程中归档来自多个节点的内容?
我有一个并行构建 win/lin 的 jenkins 工作流作业。作业完成后,linux 结果会覆盖 windows 结果。
如何共享或收集来自每个节点的结果,以便在我的最终产品中获得两个集合?
def branches = [:]
branches["Windows Build"] = {
node('winx64&&slave')
{
// Do build
...
// Collect
step([$class: 'JUnitResultArchiver', testResults: '**/build/test-results/*.xml', fingerprint: false])
step([$class: 'ArtifactArchiver', artifacts: '**/build/reports/**,**/build/*.log', excludes: null]) }
}
}
branches["LinuxBuild"] = {
node('linx64&&slave')
{
// Do build
...
// Collect
step([$class: 'JUnitResultArchiver', testResults: '**/build/test-results/*.xml', fingerprint: false])
step([$class: 'ArtifactArchiver', artifacts: '**/build/reports/**,**/build/*.log', excludes: null]) }
}
}
}
仅供参考,我想我可以在 Lin 和 Win 目录中完成工作,并将结果从 Win//... 和 Lin//... 中合并并没有覆盖,但它似乎有点笨拙。
您可以使用 stash
/unstash
具有不同名称的步骤稍后检索报告,并根据需要对它们进行任何操作。
parallel firstBranch: {
// do something
stash includes: '**/build/reports/**,**/build/*.log', name: 'first'
}, secondBranch: {
// do something else
stash includes: '**/build/reports/**,**/build/*.log', name: 'second'
}
dir('dir1') {
unstash 'first'
// do whatever you want
}
archive 'dir1/*'
dir('dir2') {
unstash 'second'
// do whatever you want
}
archive 'dir2/*'
如何在并行构建过程中归档来自多个节点的内容?
我有一个并行构建 win/lin 的 jenkins 工作流作业。作业完成后,linux 结果会覆盖 windows 结果。
如何共享或收集来自每个节点的结果,以便在我的最终产品中获得两个集合?
def branches = [:]
branches["Windows Build"] = {
node('winx64&&slave')
{
// Do build
...
// Collect
step([$class: 'JUnitResultArchiver', testResults: '**/build/test-results/*.xml', fingerprint: false])
step([$class: 'ArtifactArchiver', artifacts: '**/build/reports/**,**/build/*.log', excludes: null]) }
}
}
branches["LinuxBuild"] = {
node('linx64&&slave')
{
// Do build
...
// Collect
step([$class: 'JUnitResultArchiver', testResults: '**/build/test-results/*.xml', fingerprint: false])
step([$class: 'ArtifactArchiver', artifacts: '**/build/reports/**,**/build/*.log', excludes: null]) }
}
}
}
仅供参考,我想我可以在 Lin 和 Win 目录中完成工作,并将结果从 Win//... 和 Lin//... 中合并并没有覆盖,但它似乎有点笨拙。
您可以使用 stash
/unstash
具有不同名称的步骤稍后检索报告,并根据需要对它们进行任何操作。
parallel firstBranch: {
// do something
stash includes: '**/build/reports/**,**/build/*.log', name: 'first'
}, secondBranch: {
// do something else
stash includes: '**/build/reports/**,**/build/*.log', name: 'second'
}
dir('dir1') {
unstash 'first'
// do whatever you want
}
archive 'dir1/*'
dir('dir2') {
unstash 'second'
// do whatever you want
}
archive 'dir2/*'