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

时间:2017-12-24 15:21:25

标签: jenkins jenkins-plugins

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

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

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

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

$(document).on("change", "input[type='radio']", function(){
    $("input[type='radio']").each(function(){
    $("#book").attr("disabled", false);
        if($(this).is(":checked") === false){
            $("#book").attr("disabled", true);
        }
    }); 
});

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

  

文件复制操作:   致命:期待Ant GLOB模式,但看到'H:\ home \ Videos \ videos \ * .MTS'。有关语法

,请参阅http://ant.apache.org/manual/Types/fileset.html

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

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

2 个答案:

答案 0 :(得分:6)

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

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

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

此代码允许您复制工作空间目录中提到的目录中的mts文件。您可以看到 dir 步骤here

的其他帮助

答案 1 :(得分:0)

当我尝试接受的答案时,我停止获取错误,但是该文件未复制到我的工作空间,并且由于没有错误,所以我没有关于原因的信息。

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

例如

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