jenkins - 如何实现工作时间 Jenkins 插件
问题描述
我们希望将 JENKINS 的执行限制在工作时间。例如,我们希望每天早上 8 点到下午 6 点运行 jenkins。每天晚上詹金斯必须在早上自动停止和恢复。我们正在使用这个 Working Hours Jenkins 插件来实现这个要求。当我在系统配置下进行相同配置时,它并没有按预期工作。我们正在使用 Jenkins GUI 来安排作业。请找到我的工作时间 Jenkins 插件时间表的附加屏幕截图。我在这里想念什么?你能帮我解决这个问题吗?感谢您提供的任何帮助。
解决方案
插件使用的详细信息可在插件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'
}
}
}
}
就是这样,您必须配置每个相关作业以使用计划,否则它根本不会受到影响。
推荐阅读
- c - 致命错误:sodium.h:没有这样的文件或目录
- python - 有人可以向我解释这段代码 - python 3
- javascript - 将 xml 标签加载到 javascript 数组中
- delphi - Delphi中如何将组件作为过程的参数传递?
- java - 在要求告知日期的问题中获得意外输出
- r - 如何将 purrr modify_if 与具有不同参数的多个函数一起使用?
- mockito - AEM Mockito Junit 5 无法覆盖捕获块
- reactjs - 路由器通量背景图像问题
- keras - 当我构建编码器模型时,告诉我 __init__() 需要 1 个位置参数,但给出了 2 个
- python - 将文件从 gnuradio 保存到 matlab 或 Gnu octave