gpt4 book ai didi

jenkins - 在 Jenkins 中将文件从一个目录复制到另一个目录

转载 作者:行者123 更新时间:2023-12-03 20:56:34 28 4
gpt4 key购买 nike

我正在尝试将我的测试结果移到公共(public)网页上。

我设置了“构建后操作”>“构建后任务”来执行脚本。

脚本是:
cp -r /var/lib/jenkins/jobs/instrumentation-tests/htmlreports/HTML_Report/ /var/www/html/test/
Jenkins 输出:cp: 目录/var/www/html/test 不存在

如果我在运行 jenkins 的 linux 机器上以用户 jenkins 身份登录,我可以导航到源并查看当前有文件。我可以导航到目的地并看到它确实存在。

另外,我尝试以 jenkins 用户身份从终端运行该命令,并且 cp 成功完成。

最佳答案

正如您在评论中提到的,您的测试结果是在从机器上构建期间生成的。因此,您尝试将文件复制到 /var/www在从服务器上,而不是 Jenkins 主服务器上。

有几种不同的方法可以解决这个问题:

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

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

    这可确保您的文件复制将在构建结束时工作,假设 Jenkins 用户具有写入权限。
  • 使用 Publish over SSH plugin将文件直接发布到 /var/www在 Jenkins 主机上,从任何其他机器。

    这样做的好处是,无论构建发生在哪台 Jenkins 构建机器上,它都能正常工作。

  • 您还可以将作业分成两部分:一个作业运行测试并生成结果,另一个作业发布测试结果。

    第一个作业可以在任何机器上运行,并且会使用“归档工件”构建后操作来保存生成的 HTML 文件。然后它会开始第二个工作——通过“构建其他工作”构建后操作——以进行发布。

    第二个作业可以使用上述任何一种方法:要么使用 SSH 发布,要么确保它在主服务器上运行并使用带有 cp 的简单 shell 步骤。 .

    在这两种情况下,您都将使用 Copy Artifact plugin从上游构建复制归档的 HTML 文件。

    关于jenkins - 在 Jenkins 中将文件从一个目录复制到另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35352074/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com