我想安排一个在将来的指定时间最多执行一次的工作(通常该时间将是当晚的晚上,几个小时之后)。我想用詹金斯做到这一点。如果詹金斯在这段时间内碰巧倒下了,这份工作就不会被解雇- 很好。
目前,我正计划在启用“定期构建”的情况下进行一项新工作,并将时间表设置为“ 0 19 29 01 *”。
目的是安排作业在1月29日的19:00运行。
缺点是每次执行此操作时,我都必须记住要在明年之前的某个时间删除/禁用该作业,否则它将再次运行(那很不好)。无论如何,我都会手动检查作业的结果,所以做起来并不难。我只是希望有人能够指出一种安排Jenkins运行“一次性”作业的方法- 这样我就不会因为忘记禁用该作业而搞砸了。
安装“计划构建插件”。“增加了在以后的某个时间点安排构建的功能。向用户询问日期和时间,并将构建添加到具有相应静默期的构建队列中。”
即使您看到计划构建的图标,在插件安装后似乎也需要重新启动jenkins。
https://wiki.jenkins- ci.org/display/JENKINS/Schedule+Build+Plugin
注意:初次安装(使用jenkins 2.2)后,我收到警告“插件提供了GET”。确实确实有某种计划的工作,它说它“在13小时内到期”,这对我的计划时间是正确的。它没有执行任务。:-(
看到的警告:
You must use POST method to trigger builds. (From scripts you may instead pass a per-project authentication token, or authenticate with your API token.) If you see this page, it may be because a plugin offered a GET link; file a bug report for that plugin.
网址,大概是GET:
http://jenkins:xxxx/job/jobname/build?delay=47212sec
这是Jenkins 2.2和Schedule Build Plugin 0.3.4
我现在可以使用我的jenkins 2.7.4和从源代码构建的Schedule Build Plugin。
解决方案: 使用最新的jenkins并等待新版本的插件(> 0.3.4)。。。(或从源代码构建)。该插件上已经存在一个关于GET问题的错误,并且已修复源代码,但尚未发布最新版本。2016年9月26日:https : //issues.jenkins- ci.org/browse/JENKINS-28961 从源代码构建schedule_build.hpi可以正常工作。对于jenkins 2.2,如果在jenkins中禁用了CSRF保护,则可以正常工作。