如何在管道阶段结束时归档工件

时间:2019-11-27 12:34:29

标签: jenkins-pipeline

我有以下管道

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,它将起作用

我想在“归档工件”阶段结束时保存并覆盖工件,但是只有在所有管道结束时才这样做。

0 个答案:

没有答案