jenkins - 使用 Jenkins Rest API 安排 Jenkins 作业

标签 jenkins jenkins-api

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

我尝试通过安装 Schedule Build 插件来修改构建并使用 http://jenkins_url/job/jobname/build?delay=3344sec 修改它.但这会将工作置于包含 Java 线程的静默期。我希望在不将其置于安静期的情况下修改 Schedule 条目。

最佳答案

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

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

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

  • 在 bash 中,这可以通过单行(使用 curlsed )来修改下面的 XML 部分(示例安排在 2 月 29 日中午运行):
    [...]
    <triggers>
    <hudson.triggers.TimerTrigger>
    <spec>00 12 29 02 * </spec>
    </hudson.triggers.TimerTrigger>
    </triggers>
    [...]
    

    笔记:
  • 作为一个优点,您不会依赖任何补充插件
  • 警告:你不能在时间表中指定一年——所以如果你需要提前一年以上安排构建,那么你需要一些魔法。
  • 关于jenkins - 使用 Jenkins Rest API 安排 Jenkins 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60186314/

    相关文章:

    java - 好极了。按嵌套映射的键对映射数组进行排序

    Jenkins 远程触发器用户名

    git jenkins scm 插件权限被拒绝

    jenkins - 带有Kubernetes的Jenkins Workflow CD

    java - 在 Spring Boot 应用程序的应用程序属性文件中使用 Jenkins 变量

    jenkins - 如何使用 Jenkins 服务器检查禁用的作业?

    jenkins - 访问 Jenkins v2.73.1 crumbIssuer REST API 时出现 404

    java - Jenkins API 响应调优

    Jenkins 不会保存全局工具配置