我创建了一个jenkins作业,它是参数化的。参数即 HH,MM,Day 等。因此,此构建是并发启用的。我的想法是,只要使用特定的 HH,MM,DAY 值触发此作业,就必须在该特定时间安排此作业的子作业。
我认为,定期构建不适用于此。 参数化调度程序怎么样? 你能帮我解决一下可行的解决方案吗?
答案 0 :(得分:0)
您可以尝试使用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)
答案 1 :(得分:0)
我能想到的最简单的解决方案是使用一些脚本或shell脚本来检查特定时间,并在满足指定条件时创建文件。
稍后您可以使用条件触发器插件在文件存在时触发其他作业注意:您可能必须在触发作业后删除该文件。
https://wiki.jenkins-ci.org/display/JENKINS/Conditional+BuildStep+Plugin