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

问题描述 投票:0回答:3

我从 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: ".")])

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

文件复制操作: FATAL:期待 Ant GLOB 模式,但看到“H:\home\Videos ideos\*.MTS”。有关语法,请参阅http://ant.apache.org/manual/Types/fileset.html

所以,我一直在尝试将一些文件带到工作区目录以便在那里进行处理。

注意:我正在为我的工作使用声明式管道。

jenkins jenkins-plugins
3个回答
10
投票

事实上,问题似乎不是从工作区外部复制文件,而是从当前工作目录外部复制文件。我仍然不知道该怎么做。

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

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

此代码允许您复制放置在工作区目录中提到的目录中的 mts 文件。您可以在dir步骤here

看到额外的帮助

1
投票

当我尝试接受的答案时,我不再收到错误,但文件没有复制到我的工作区,因为没有错误,我没有得到关于原因的信息。

无论如何,对我有用的是运行“powershell”步骤并使用命令“复制”,因为我在 Windows 上工作,如果你在 Linux 中,你可以使用步骤“sh”代替。

例如

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

0
投票

您可以手动复制所有数据您可以找到 Jenkins 工作区中的数据在 .Jenkins 文件夹中然后您可以从那里复制数据

然后您可以复制数据抛出脚本,您可以添加 power shall 插件并在 Jenkins 作业中添加构建步骤选择 power shall 选项

Copy-Item -Path “(source patch)*” -Destination “(destination path)” -Recurse -Force

© www.soinside.com 2019 - 2024. All rights reserved.