如何在排除子目录的同时递归地归档 Jenkins 中的特定工件?

How to acrhive specific artifacts in Jenkins recursively, while excluding a subdirectory?

我的文件树如下:

Jenkins > workspace > <JOB_NAME> > out > <BUILD_NAME> /

目录中,有一堆不同扩展名的文件,例如.hex、.map 和.zip。此外,还有另一个子目录——build。我想归档所有单个文件,但不归档 build/.在声明性管道中执行此操作的最有效方法是什么?请记住, 的名称不断变化,因此不能将其硬编码到存档路径中。

可以通过 archiveArtifacts 步骤存档工件。该步骤提供了从归档中排除文件的选项。[1]

archiveArtifacts artifacts: '${JOB_NAME}/out/${BUILD_NAME}/*', excludes: '${JOB_NAME}/out/${BUILD_NAME}/build/*'

我假设 BUILD_NAME 是您定义的变量或参数,因为它不是全局变量。请参阅 [2] 了解全局变量。

[1] https://www.jenkins.io/doc/pipeline/steps/core/#archiveartifacts-archive-the-artifacts
[2] https://opensource.triology.de/jenkins/pipeline-syntax/globals