来自并行作业的 Jenkins 工件
Jenkins Artifacts from parallel Jobs
如果作业是 运行 不同节点上的并行作业,Jenkins 使用 archiveArtifacts 归档哪些工件?
matrix {
axes {
axis {
name 'PLATFORM'
values 'linux', 'mac', 'windows'
}
}
agent {label 'PLATFORM'}
stages {
stage('build-and-test') {
// create artifacts in env.WORKSPACE/delivery/
archiveArtifacts artifacts: env.WORKSPACE + 'delivery/**'
}
}
}
在这种情况下,可能存在具有相同名称的相同或不同工件。
詹金斯会存储所有这些吗?我们将在 "Last Successful Artifacts" 下的工作页面上看到哪些工件?
你不会得到所有的东西,据我所知,Jenkins 会覆盖工件,所以请求存档的阶段,例如"tests.xml" 将参加比赛,获胜者是最后一个到达终点线的人。
我们在存档前将工件移动到一个唯一的文件夹,例如
...
script {
sh label: "Moving artifacts to ${testName}",
script: """rm -rf ${env.WORKSPACE}/${testName} || true
mkdir ${env.WORKSPACE}/${testName}
mv ${env.WORKSPACE}/tests.xml ${env.WORKSPACE}/${testName}/"""
archiveArtifacts artifacts: "${testName}/**"
}
如果作业是 运行 不同节点上的并行作业,Jenkins 使用 archiveArtifacts 归档哪些工件?
matrix {
axes {
axis {
name 'PLATFORM'
values 'linux', 'mac', 'windows'
}
}
agent {label 'PLATFORM'}
stages {
stage('build-and-test') {
// create artifacts in env.WORKSPACE/delivery/
archiveArtifacts artifacts: env.WORKSPACE + 'delivery/**'
}
}
}
在这种情况下,可能存在具有相同名称的相同或不同工件。 詹金斯会存储所有这些吗?我们将在 "Last Successful Artifacts" 下的工作页面上看到哪些工件?
你不会得到所有的东西,据我所知,Jenkins 会覆盖工件,所以请求存档的阶段,例如"tests.xml" 将参加比赛,获胜者是最后一个到达终点线的人。
我们在存档前将工件移动到一个唯一的文件夹,例如
...
script {
sh label: "Moving artifacts to ${testName}",
script: """rm -rf ${env.WORKSPACE}/${testName} || true
mkdir ${env.WORKSPACE}/${testName}
mv ${env.WORKSPACE}/tests.xml ${env.WORKSPACE}/${testName}/"""
archiveArtifacts artifacts: "${testName}/**"
}