如何将文件从工作区外部的目录复制到Jenkins管道中的工作区

Alb*_*nez 4 jenkins jenkins-plugins

我从Jenkins管道开始,我想将一些视频文件从任何jenkins目录之外复制到我的工作区目录中。我正在使用文件操作插件来为我拥有的其他作业执行一些文件操作。使用该插件,我可以将文件从工作区内部复制到外部:

fileOperations([fileCopyOperation(excludes: '', flattenFiles: false, includes: "videos\\*.MTS", targetLocation: "H:\\home\\Videos")])
Run Code Online (Sandbox Code Playgroud)

例如,通过此步骤,我可以将位于我的工作空间中的4个视频文件复制到另一个磁盘中提到的目录中。

但是我想相反。我想将视频文件从另一个磁盘中的源目录复制到工作区。我用几种方法尝试过,但是似乎' include '字段不接受绝对路径。例如:

fileOperations([fileCopyOperation(excludes: '', flattenFiles: false, includes: "H:\\home\\Videos\\videos\\*.MTS", targetLocation: ".")])
Run Code Online (Sandbox Code Playgroud)

这在控制台输出中返回以下错误:

文件复制操作:致命:需要Ant GLOB模式,但是看到'H:\ home \ Videos \ videos \ *。MTS'。有关语法,请参见http://ant.apache.org/manual/Types/fileset.html

因此,我被困试图将一些文件携带到工作区目录中以便在此处进行处理。

注意:我在工作中使用了声明式管道。

Alb*_*nez 8

实际上,似乎问题不在于从工作空间之外而是从当前工作目录之外复制文件。我仍然不知道该怎么做。

但是,您可以将当前工作目录更改为包含要复制的文件的目录,因此:

dir("H:\\home\\Videos\\videos") {
    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: '*.MTS', targetLocation: "${WORKSPACE}")])
}
Run Code Online (Sandbox Code Playgroud)

此代码使您可以复制放置在工作区目录中提到的目录中的mts文件。您可以在此处查看有关dir步骤的其他帮助