如何在Jenkins中通过环境变量设置定期构建的作业的计划

时间:2018-02-12 10:34:43

标签: jenkins cron jobs schedule

在Jenkins中,您可以使用类似cron的时间定义设置要定期构建的作业。 e.g。

# 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?。我使用了这个但是这并没有解决我的问题 - 工作生成器本身会定期运行它不应该做什么'吨)

1 个答案:

答案 0 :(得分:0)

您无法访问该块中的变量,而是可以使用插件来安排作业。 parameterized-scheduler-plugin此插件可以为您提供帮助。它确实与pipeline scripting很好地集成。希望这会有所帮助。