如何根据输入参数计划/触发jenkins作业?

时间:2017-02-28 12:24:44

标签: jenkins jenkins-plugins

我创建了一个jenkins作业,它是参数化的。参数即 HH,MM,Day 等。因此,此构建是并发启用的。我的想法是,只要使用特定的 HH,MM,DAY 值触发此作业,就必须在该特定时间安排此作业的子作业。

我认为,定期构建不适用于此。 参数化调度程序怎么样? 你能帮我解决一下可行的解决方案吗?

2 个答案:

答案 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