2016-12-20 3 views
0

ポストビルドタスクでジェンキンスジョブを持っています。ポストビルドタスクは正規表現です。正規表現の条件が満たされた場合、別のジェンキンのビルドをトリガするパラメータ化されたリモートトリガを実行する必要があります。 post build taskから、正規表現の条件がスクリプトをトリガーできることがわかりました。 parameterized remote triggerをトリガーすることは可能ですか?ポストビルドタスクからパラメータ化されたリモートトリガを実行する方法は?

基本的には、最初のビルドから正規表現条件が満たされていれば、2番目のビルドを行いたいだけです。私はそれを達成するためにCURLを実行するスクリプトを持つことは望ましくありません。他の方法はありますか?

答えて

0

Post-Build Groovy Pluginを使用してこれを実現しました。 Jenkinsのジョブ構成のビルド後アクションでそれを選択します。私のgroovyスクリプトは、私の元の仕事のビルドログで正規表現を実行します。正規表現条件が満たされると、新しいビルドがトリガされます。以下

グルービープラグインの例である:

def job = Hudson.instance.getJob('MyJobName') 
def anotherBuild 
try { 
    def params = [ 
     new StringParameterValue('FOO', foo), 
    ] 
    def future = job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(params)) 
    println "Waiting for the completion of " + HyperlinkNote.encodeTo('/' + job.url, job.fullDisplayName) 
    anotherBuild = future.get() 
} catch (CancellationException x) { 
    throw new AbortException("${job.fullDisplayName} aborted.") 
}