【发布时间】:2018-07-22 11:56:38
【问题描述】:
在 Jenkins 中,您可以设置作业以使用类似 cron 的时间定义定期构建。例如
# switch timezone
TZ=Etc/GMT+6
# build once anywhere between 13:00 - 23:59
H H(13-23) * * *
您还可以配置参数化作业。这意味着您可以在旅途中设置一些将在配置中使用的预定义环境变量的值。例如git上的某个分支,您可以让用户设置环境变量“BRANCH”的值,然后使用
${BRANCH}
在配置中。
但这似乎不适用于定期构建作业配置的Schedule 值。
我的问题:
我正在使用 Job-Generator 插件。它基本上是在使用自己的配置作为模板的同时创建新的(未参数化但定期运行的)作业。
为了为不同的存储库生成不同的作业,您使用之前描述的参数化构建,因此在生成的作业配置中,变量名称 ${...} 被替换为值。
现在我不希望生成器定期运行,但当然只能按需运行。因此,我想用一个变量替换前面提到的 cron 规则,这样它本身就不会在一夜之间构建。
我尝试将 CRON1 (TZ=Etc/GMT+6) 和 CRON2(H H(13-23) * * *) 设置为不可更改的生成器变量并使用
Schedule
${CRON1}
${CRON2}
但这会使 Jenkins 崩溃并在尝试保存生成器配置时抛出错误。
第 1:1 行:意外字符:'$'
如何使用环境变量设置计划值?
(我不想这样做 Jenkins scheduled build Triggers with environment variable? 。我正在使用它,但这并不能解决我的作业生成器本身定期运行的问题,它不应该这样做)
【问题讨论】:
标签: jenkins cron jobs schedule