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

b0zn9rqh  于 2023-05-06  发布在  Jenkins
关注(0)|答案(3)|浏览(151)

我从Jenkins管道开始,我想从任何Jenkins目录外复制一些视频文件到我的作业工作区目录。我正在使用File Operations Plugin为我的其他作业执行一些文件操作。有了这个插件,我可以将文件从工作区内部复制到外部:

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

例如,通过此步骤,我可以将位于工作区中的4个视频文件复制到位于另一个磁盘中的上述目录中。
但我想反其道而行之。我想将视频文件从另一个磁盘的源目录复制到工作区。我尝试了几种方法,但似乎'includes'字段不接受绝对路径。例如:

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

这在控制台输出中返回以下错误:
文件复制操作:致命:预期为Ant GLOB模式,但看到'H:\home\Videos\videos*. MTS'。语法请参见http://ant.apache.org/manual/Types/fileset.html
因此,我一直试图将一些文件转移到工作区目录,以便在那里进行处理。
注意:我在工作中使用声明式管道。

yduiuuwa

yduiuuwa1#

事实上,问题似乎不是从工作区之外复制文件,而是从当前工作目录之外复制文件。我还是不知道该怎么做。
但是,您可以将当前的工作目录更改为包含要复制的文件的目录,因此:

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

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

hrirmatl

hrirmatl2#

当我尝试接受答案时,我停止了错误,但文件没有复制到我的工作区,因为没有错误,我没有得到任何信息,为什么。
无论如何,对我来说,运行一个'powershell'步骤并使用命令'copy',因为我在Windows上工作,如果你在Linux中,你可以使用步骤'sh'代替。
例如

powershell 'copy "${source}" ${filename}'
z18hc3ub

z18hc3ub3#

您可以手动复制所有数据,您可以在Jenkins工作区中找到数据。Jenkins文件夹,然后您可以从那里复制数据
然后你可以复制数据抛出脚本,你可以添加power shall插件,并在Jenkins job select power shall选项中添加构建步骤
Copy-Item -Path“(source patch)*”-Destination“(destination path)”-Recurse -Force

相关问题