2017-02-28 14 views
1

jenkinsジョブを作成しました。このジョブはパラメータ化されています。パラメータHH、MM、など。したがって、このビルドは同時に有効です。私の考えは、このジョブが特定のHH、MM、DAYの値でトリガーされるたびに、そのジョブの子ジョブをその特定の時刻にスケジュールする必要があるということです。入力パラメータに基づいてjenkinsジョブをスケジュール/トリガーする方法は?

私は、ビルドは定期的にこれのために動作しないと思う。 パラメータ化スケジューラはどうですか? 実現可能な解決策を教えてください。

答えて

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) 
0

最も簡単な解決策は、指定した条件が満たされた場合、特定の時間をチェックし、ファイルを作成するために、いくつかのスクリプトまたはシェルスクリプトを使用することです。

後で条件付きトリガープラグインを使用して、ファイルが存在する場合に他のジョブをトリガーすることができます。注:ジョブをトリガーした後でファイルを削除する必要があります。

関連する問題