首页 > 解决方案 > 如何实现工作时间 Jenkins 插件

问题描述

我们希望将 JENKINS 的执行限制在工作时间。例如,我们希望每天早上 8 点到下午 6 点运行 jenkins。每天晚上詹金斯必须在早上自动停止和恢复。我们正在使用这个 Working Hours Jenkins 插件来实现这个要求。当我在系统配置下进行相同配置时,它并没有按预期工作。我们正在使用 Jenkins GUI 来安排作业。请找到我的工作时间 Jenkins 插件时间表的附加屏幕截图。我在这里想念什么?你能帮我解决这个问题吗?感谢您提供的任何帮助。

工作时间 Jenkins 插件-配置

标签: jenkinsselenium-webdriverautomated-testsjenkins-plugins

解决方案


插件使用的详细信息可在插件Github 页面上找到。

工作时间插件允许您设置允许的构建时间计划;项目可以选择使用计划来防止它们在配置的允许构建时间之外运行。如果在非工作时间安排构建,则它将保留在构建队列中,直到下一个允许的时间。作业通过此插件提供
的作业参数选择加入。enforceBuildSchedule它可以选择接受一个分支参数以将其使用限制为仅这些分支。这仅适用于 MultiBranchPipelines。

因此,要使用该插件,您需要在“配置系统”菜单中配置您请求的时间表(就像您所做的那样) - 这将包含该插件的一般配置,但它不会影响任何工作:

为了使用工作时间插件,您必须在 Jenkins 系统配置页面中设置时间表。enforceBuildSchedule如果在周一至周五上午 8:00 到下午 6:00 之外运行,以下配置将导致作业排队。

这意味着为了影响作业(目前仅支持管道作业 - 不支持自由式),您必须显式配置该作业以强制执行配置的计划。这种强制是使用enforceBuildSchedule插件提供的关键字完成的。
对于脚本化的管道,它看起来像:

node {
   properties([enforceBuildSchedule()])
   stage('Do some stuff') {
      echo 'this can wait til morning'
   }
}

对于声明性管道,它将如下所示:

pipeline {
   agent any
   options {
       enforceBuildSchedule()
   }
   stages {
       stage('Do some stuff') {
           steps {
               echo 'this can wait til morning'
           }
       }
   }
}

就是这样,您必须配置每个相关作业以使用计划,否则它根本不会受到影响。


推荐阅读