【问题标题】:Using Jenkins' Publish over SSH plugin, how to stop a job execution and throw an error if 0 files had been transferred?使用 Jenkins 的 Publish over SSH 插件,如果已传输 0 个文件,如何停止作业执行并引发错误?
【发布时间】:2017-12-14 00:07:36
【问题描述】:

默认情况下,如果此插件传输了 0 个文件,则构建状态保持成功。

“如果发生错误则构建失败”设置没有帮助,因为它仅在构建状态为 UNSTABLE 时才有效。

【问题讨论】:

  • 可以检查文件在目的地是否可用/更新,如果没有,返回非零值?
  • 任何想法如何在詹金斯工作中做到这一点?

标签: jenkins plugins ssh publish


【解决方案1】:

您可以检查目标文件是否已更新,或者目标是否存在(以防文件是 SSH 服务器上的新文件) 现在,您可以在“Publish Over SSH”插件中执行此操作。有一个部分可以通过 SSH 在服务器上执行命令。

文件传输完成后,检查所需文件。如果所需文件仍然不存在,请使用非零退出。

确保勾选“如果发生错误则构建失败”框。

【讨论】:

  • 关于存在/不存在一切都非常明显,但是我们可以做些什么来检查文件的更新呢? “执行命令”仅在文件传输后执行,并且无法保存文件的先前状态(使用 stat -c 或 smth)。 Ofc 我们可以在这个构建步骤中创建 2 个传输集,将文件的先前状态保存到第一个变量中并在第二个执行传输,但是这个变量在单独的传输集中将不可用(在这种情况下在第二个一)。
  • 这可能不是您所要求的解决方案,但我可以知道为什么有可能传输 0 个文件吗?是因为“源文件”为空吗?或远程无法访问?在第一种情况下,您甚至可以在启动“通过 SSH 发布”之前添加预检查以使作业失败,以防源为 0。在第二种情况下,SCP 本身将失败
猜你喜欢
  • 2014-04-05
  • 2019-10-31
  • 2023-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
  • 2017-05-07
  • 1970-01-01
相关资源
最近更新 更多