Jenkins 管道:如何在 Jenkins 管道的后期下载存档工件

Den*_*boy 5 jenkins jenkins-plugins jenkins-pipeline

我有一个詹金斯管道。

在阶段 A 中,我有一个步骤需要存档或保存我的工件,因为我需要在不同的从属设备的不同阶段重用这些工件:

    stage('Save artifacts'){
        steps {
            archiveArtifacts artifacts: '**/**/target/app*.ear'
        }
    }
Run Code Online (Sandbox Code Playgroud)

存档似乎有效。构建完成后,我会在 UI 中看到工件并可以下载它们。但是我如何在稍后阶段访问/下载这些工件?

Mic*_*ael 7

而不是archiveArtifacts你应该使用stashunstash。例如:

stage("Build") {
    steps {
        // ...
        stash(name: "ear", includes: '**/**/target/app*.ear')
    }
}

stage("Deploy") {
    steps {
        unstash("ear")
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

并不是说stash不仅存储文件,还存储它们的路径。因此unstash会将文件完全放在原来的位置(例如my-service/target/app.ear)。

  • 请注意,对于大于 5MB 的文件,不建议使用“stash”,[请参阅此处](https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#stash-stash-some-files-to-稍后在构建中使用) (3认同)