jenkins - 更新声明性管道作业的 cron 触发器不会更新触发器
问题描述
我有一个声明性管道作业定义为管道脚本(不是来自 SCM 的管道)。它有一个 cron 触发器:
triggers {
cron('H */4 * * 1-5')
}
我已经按需运行了几次并触发了 cron,到目前为止一切都很好。现在,如果我更改 cron 触发器,jenkins 不会接受更改,旧触发器仍然有效,直到我强制运行作业。
如何让 Jenkins 在不手动运行作业的情况下使用更改后的触发器?我认为这个问题可以扩展到任何声明性的作业定义更改,我如何让詹金斯更新作业设置而不被迫运行作业。
解决方案
这与 Jenkins 管道的工作方式有关。触发以及其他作业配置仅在作业执行一次后才自行加载到 Jenkins 中。这只是一个鸡蛋和鸡肉的问题。
由于管道作业应该在存储它的地方(例如 Github)的上下文中,您应该考虑从那里触发它并使用一些内部逻辑来决定是否运行它。
此解决方案的复杂性应该与您更新触发器的次数有关。
推荐阅读
- angular - Angular 8 - 来自 websocket 的打字指示器
- python - 我怎样才能只看到使用 shutil.disk_usage("C:") 的存储
- javascript - 当 PostgreSQL 连接不可用时,对 PHP 脚本的 Ajax 调用会减慢整个网页的速度
- bazel - 如何在 Bazel 中强制重建包以测量构建时间
- r - 遍历调查中的变量组 - R
- c# - Asp.net core 2.2 时区问题
- php - SQLite 触发器执行,在 laravel 上抛出错误
- html - html + perl:当用户提交表单时如何显示等待页面/弹出窗口
- python - BeautifulSoup - 具有多个嵌套值的多张卡片
- swift - 使用 SwiftSVG 来自 HTML 数据的 UIImage