来自并行作业的 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}/**" 
}