我可以将轮询 SCM 作业限制为每天 运行 一次吗?

Can I restrict poll SCM job to be run only once in a day?

我有一个轮询 SCM 作业,它每 5 分钟轮询一次 Perforce 的变化。但是我只需要在一天内对 perforce 中的文件进行首次编辑时才触发作业。我可以将轮询 SCM 作业限制为每天 运行 一次吗?

您需要标记 Poll SCM 而不是 Build Periodically

Poll SCM 中,您可以写一个类似 cron 的条目,您的轮询频率 运行,例如每天一次(运行 在 1:00am):

0 1 * * *

Jenkins 本身不提供这种行为 ("run only for the very first change every day")。

你需要把它分成两部分;第一个轮询 SCM,第二个注意作业每天不会 运行 超过一次。

可能的解决方案:

  • 保持当前的轮询作业,每 5 分钟检查一次更改
  • 添加一个构建步骤,它将在 运行ning 之后禁用该作业(从而防止在这一天出现第二个 运行)
  • 创建另一个作业,每天早上在 0:00 启用(重新)启用轮询作业,这样轮询作业可以 运行 在下一次更改时

如果您不希望看到轮询作业进入 "disabled" 状态,那么您也可以从 运行 末尾的作业配置中删除该作业的 SCM 轮询,并且让第二份工作重新确立这一点。这有点复杂,因为您需要修改作业配置。

在任何情况下,"change" 将始终指代轮询作业的最后一个 运行。因此,如果第 1 天有两个更改 A 和 B,则轮询作业将在第 1 天 "A" 一次 运行,然后在第 2 天再次 "B"。