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

在管道中将文件从Jenkins master复制到slave

井修雅
2023-03-14

我在Jenkins有一些windows slave,所以我需要在管道中将文件复制到他们。我听说了Copy To Slave和Copy Artifact插件,但它们没有管道语法手册。所以我不知道如何在管道中使用它们。

直接复制不起作用。

def inputFile = input message: 'Upload file', parameters: [file(name: 'parameters.xml')]
new hudson.FilePath(new File("${ENV:WORKSPACE}\\parameters.xml")).copyFrom(inputFile)

此代码返回错误:

Caused: java.io.IOException: Failed to copy /var/lib/jenkins/jobs/_dev/jobs/(TEST)job/builds/107/parameters.xml to d:\Jenkins\workspace\_dev\(TEST)job\parameters.xml

有没有办法复制文件从主从Jenkins管道?

共有3个答案

郤立果
2023-03-14

如果需求是将可执行文件复制到测试从机并发布测试结果,那么不需要复制到从机插件就可以轻松完成。

应在每个测试从站(普通Windows共享文件夹)上创建一个共享文件夹。

构建后:构建脚本将可执行文件复制到每个从属服务器上的共享目录。一个使用copy命令的简单批处理脚本就足够了。

stage ('Copy to slaves') {
    steps {
        bat 'call "copy-to-slave.bat"'
    }
}

测试期间:测试脚本将可执行文件复制到另一个目录并运行它。

测试后:构建后操作“发布机器人框架测试结果”可用于报告测试结果。无需先将测试结果文件复制回主机。

顾光明
2023-03-14

Pipeline DSL上下文在master节点上运行,即使您在管道中写入节点('某个AgentName')

  • 尝试使用隐藏/取消隐藏,但这对大型文件不好
阳福
2023-03-14

据我所知,copyFrom是在Windows节点上执行的,因此无法访问源路径。

我想您应该研究一下隐藏步骤(Jenkins管道:基本步骤),这些步骤跨不同的节点工作。此外,此示例可能会有所帮助。

 类似资料:
  • 使用Java8。 为了获得最佳性能,我尝试用复制文件,但很快发现它不支持汉字。例如: 代码打算从jar复制一个文件,但它抛出了一个异常(a“我的" 文件夹已提前创建): 问题是鎴戠殑" 甚至连一个中国人都看不懂,所以我正在寻找一个解决办法来处理汉字。 我也尝试了FileChannel,但失败了,意识到它用于直接文件,而不是在一个jar中的文件。我该怎么做?

  • 我想将一个文件从容器复制到我的本地。该文件是在执行python脚本后生成的,但由于当时,容器在运行后立即退出,并且无法使用命令。关于如何在管理复制文件之前防止容器退出的任何想法?下面是我的Dockerfile: 我使用这个命令来运行图像:

  • 是否有一种已知的方法使用Hadoop api/spark scala在Hdfs上将文件从一个目录复制到另一个目录? 我尝试使用copyFromLocalFile,但没有帮助

  • 我的s3存储桶中有很多文件,所以是否有任何aws cli命令可用于在s3中查找带有前缀名的最新文件?如何将该文件从s3复制到本地文件夹?我可以使用Boto3或python库来实现这一点吗?

  • 我正在编写来构建应用程序。我知道您可以使用 (请参见将文件从Docker容器复制到主机),但我只想运行 在Dockerfile中是否有一个命令可以用于从容器中复制到主机中?像的反义词吗?

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