2016-02-11 154 views
1

我想将我的测试结果到公众网页。复制文件从一个目录到另一个詹金斯

我成立了“生成后行动”>“后建立的任务”执行脚本。

的脚本是:

cp -r /var/lib/jenkins/jobs/instrumentation-tests/htmlreports/HTML_Report/ /var/www/html/test/

詹金斯输出:CP:目录/ var/www/html等/测试不存在

如果我的身份登录的Linux用户詹金斯机器运行jenkins,我可以导航到源代码并查看当前有文件。我可以导航到目的地,看看它是否存在。

此外,我试图从终端运行该命令作为jenkins用户,并成功完成cp。

+0

确定该脚本为用户詹金斯执行? – christutty

+0

也许这个工作在奴隶上运行? –

+0

我确实有这个在奴隶上运行,这可能是问题吗?我将如何解决它? – EGHDK

回答

2

正如你在评论中提到,被一个从机上的构建过程中生成您的测试结果。因此你想将文件复制到/var/www的奴隶,而不是詹金斯主服务器。

有,你可以解决这几个不同的方式:

  1. 确保构建发生在主服务器上。

    您可以通过在作业配置页面上选择“限制可以运行此项目的位置”,然后在文本字段中输入“master”来完成此操作。

    这确保您的文件复制将在构建结束时起作用,假定Jenkins用户具有写权限。

  2. 使用Publish over SSH plugin,将文件直接发布到/var/www对詹金斯的主人,其他任何计算机。

    这样做的好处是它可以工作,无论哪个Jenkins构建机器的构建发生在上面。

你也可以拆分的工作分为两个部分:一个作业运行测试并生成结果,并高就公布测试结果。

第一份工作可以在任何机器上运行,并使用“存档工件”后期制作操作保存生成的HTML文件。然后,它将开始第二份工作 - 通过“构建其他工作”后期制作行动 - 以便进行发布。

第二项工作可以使用上述任一种方法:使用SSH进行发布,或确保它在主服务器上运行,并使用简单的shell步骤与cp

在这两种情况下,您都可以使用Copy Artifact plugin复制上游构建中存档的HTML文件。

+0

将分工的路线分为两部分。谢谢。我无法获得SSH插件的工作,但哦。任务1:在从站X上构建并生成报告。发布任务:启动任务2.任务2:将报告移动到主站上的适当位置。 – EGHDK

相关问题