首页 > 解决方案 > 使用 Jenkins Rest API 安排 Jenkins 作业

问题描述

我有一个安排在特定时间的 Jenkins 工作。我想以编程方式修改该时间。

我尝试通过安装 Schedule Build 插件来修改构建并使用http://jenkins_url/job/jobname/build?delay=3344sec. 但这将使工作处于持有 java 线程的安静时期。我希望修改 Schedule 条目而不将其置于安静期。

标签: jenkinsjenkins-api

解决方案


您可以使用Build Triggers -> Build periodically作业配置选项。使用它来指定开始新构建的确切时间。

如果您需要更改该时间,请使用 Jenkins REST API 来...

  1. 以编程方式检索 XML 格式的作业配置,然后
  2. 修改该配置中的调度时间(见下文)
  3. 重新发布新的作业配置

在 bash 中,这可以通过单行(使用curland sed)修改下面的 XML 部分来完成(示例安排在 2 月 29 日中午运行):

[...]
<triggers>
<hudson.triggers.TimerTrigger>
<spec>00 12 29 02 * </spec>
</hudson.triggers.TimerTrigger>
</triggers>
[...]

笔记:

  • 另外,您不会依赖任何补充插件
  • 警告:你不能在时间表中指定一年——所以如果你需要提前一年以上安排构建,那么你需要一些魔法。

推荐阅读