我已经创建了一个jenkins作业,它被参数化。参数即HH,MM,日期等。所以,这个版本是并发启用的。我的想法是,只要这项工作是通过特定的HH,MM和DAY值触发的,那么此作业的子作业必须在特定时间安排。如何根据输入参数计划/触发jenkins作业?
我认为,Build Periodically对此不起作用。 参数化调度程序如何? 你能帮我解决一下可行吗?
我已经创建了一个jenkins作业,它被参数化。参数即HH,MM,日期等。所以,这个版本是并发启用的。我的想法是,只要这项工作是通过特定的HH,MM和DAY值触发的,那么此作业的子作业必须在特定时间安排。如何根据输入参数计划/触发jenkins作业?
我认为,Build Periodically对此不起作用。 参数化调度程序如何? 你能帮我解决一下可行吗?
您可以使用hudson.model.Queue.schedule()方法尝试使用Groovy脚本安排作业。
,我能想到的def job = hudson.model.Hudson.instance.getJob("myjob")
// You need a dummy parameter to avoid duplicate job cancellation
def now = System.currentTimeMillis()
def params = new StringParameterValue('DUMMY', String.valueOf(now))
def paramsAction = new ParametersAction(params)
def cause = new hudson.model.Cause.UpstreamCause(currentBuild)
def causeAction = new hudson.model.CauseAction(cause)
// Here you need to define the quiet period according to your paramters
def quietPeriod = 12345
def waitingItem = hudson.model.Hudson.instance.queue.schedule(job, quietPeriod, causeAction, paramsAction)
简单的办法是使用一些脚本或shell脚本来检查特定的时间,如果指定条件满足创建一个文件。
稍后,如果文件存在,则可以使用条件触发器插件触发其他作业注意:您可能必须在触发作业后删除文件。
https://wiki.jenkins-ci.org/display/JENKINS/Conditional+BuildStep+Plugin