当前位置: 首页 > 知识库问答 >
问题:

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

司空通
2023-03-14

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

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

因此,我不得不尝试将一些文件转移到工作区目录,以便在那里进行处理。

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

共有2个答案

太叔高义
2023-03-14

当我尝试接受的答案时,我停止得到错误,但是文件没有被复制到我的工作空间,因为没有错误,我没有得到关于为什么的信息。

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

例如

powershell 'copy "${source}" ${filename}'
胡夕
2023-03-14

实际上,问题似乎不是从工作区外部复制文件,而是从当前工作目录外部复制文件。我仍然不知道如何做到这一点。

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

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

这段代码允许您复制工作区目录中提到的目录下的mts文件。你可以在这里看到dir步骤的附加帮助

 类似资料:
  • 问题内容: 我们正在运行Jenkins 2.x,并且喜欢新的Pipeline插件。但是,由于存储库中有如此多的分支,因此磁盘空间会迅速填满。 是否有任何与Pipeline兼容的插件,我可以在成功构建后清除工作空间? 问题答案: 您可以将其用作管道Jenkinsfile的最后一步(假设您没有更改工作目录)。

  • 在Jenkins管道中,当在特定节点上运行构建时,会在该代理上分配工作区。我们没有设置工作区路径,所以它是自动确定的。我知道工作区必须包含执行程序编号,以便在同一代理上同时运行相同作业时隔离构建。 但是工作区路径是如何构造的? 我们的构建被分配给一个特定的节点(有4个执行器),并且被配置为不允许并发构建。通常分配给: 在某个时刻,构建开始在executor 2上运行,但仍然使用与以前相同的工作区。

  • 问题内容: 我在Subversion存储库中有一个保存的项目,并使用Jenkins进行编译。当我运行构建时,Jenkins将项目拉入工作区目录。我需要将一个更改的文件从Jenkins工作区提交到Subversion。我该怎么做?? 感谢您的回答… 问题答案: 您能否提供更多细节?确切地说,此文件是什么?为什么要在Jenkins构建中将其提交?您正在构建什么(Java?C ++ ?. NET?),以

  • 问题内容: 我已经使用詹金斯了很多年了,但是我从来没有自己设置它,就像我在新工作中所做的那样。我遇到了几个问题。 默认工作空间位置 -最新的Jenkins似乎在Jenkins \ jobs [projectName] \ workspace中具有默认工作空间,并且对于每个构建都将被覆盖(或擦除(如果选择))。我认为应该将其放置在Jenkins \ jobs [projectName] \ buil

  • 默认工作区位置-最新的Jenkins似乎在Jenkins\jobs[projectName]\workspace中有默认的工作区,并且在每次构建时都被覆盖(如果选中,则被删除)。我认为它应该放在Jenkins\jobs[projectName]\build[build_id]\中,这样它就可以存储每个构建的工作区状态,以供将来参考? 在project>build_id页面上显示工作区--这与前面的

  • 我是詹金的新手,我在比特桶里有4个回购,比如甲、乙、丙、丁。我必须去拿甲、乙 在Jenkinsfile中添加了上面的脚本,我将其放在repo中。 现在,我已经创建了一个多分支管道来获取所有和分支内的源- 我在源代码管理方面创造了自由式的新工作- 任何帮助都很感激。