我可以将轮询 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"。
我有一个轮询 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"。