【问题标题】:how to copy files from a directory outside the workspace to workspace in Jenkins pipeline如何将文件从工作区外的目录复制到Jenkins管道中的工作区
【发布时间】:2017-12-24 15:21:25
【问题描述】:

我从 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

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

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

【问题讨论】:

    标签: jenkins jenkins-plugins


    【解决方案1】:

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

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

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

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

    的其他帮助

    【讨论】:

    【解决方案2】:

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

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

    例如

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      • 2015-03-22
      相关资源
      最近更新 更多