我有以下管道
node ("testNode"){
dev env = ${ENV};
stage ("Copy artifact"){
copyArtifacts(projectName: 'appBuildJob',selector: lastCompleted());
}
stage ("Archive artifact"){
// Archive the build output artifacts.
archiveArtifacts artifacts: 'app/build/outputs/apk/app-${ENV}.apk';
}
stage ('env1'){
if (env == "env1") {
buildResult = build(job: 'env1Tests',propagate: false).result;
currentBuild.description = 'env1 - ' + buildResult
} else {
echo 'Env param is ' + env +'. Nothing to do here.';
}
}
stage ('env2'){
if (env == "env2") {
buildResult = build(job: 'env2Tests',propagate: false).result;
currentBuild.description = 'env2 - ' + buildResult
} else {
echo 'Env param is ' + env +'. Nothing to do here.';
}
}
}
我的问题是作业appBuildJob可以具有env1或env2参数,而env1Tests和env2Tests都取决于管道的工件。因此,例如,如果现在运行env1,它将保存工件和所有内容。然后,如果我运行env2,我的env2Tests将失败,因为它找不到env2应用程序,它将仅找到env1应用程序。在此失败并且管道结束之后,我保存了我的env2工件。因此,如果我立即运行emv2,它将起作用
我想在“归档工件”阶段结束时保存并覆盖工件,但是只有在所有管道结束时才这样做。