2016-08-29 4 views
1

私はかなり小さいJenkinsの仕事を分けました。PowershellまたはBashまたはGroovyスクリプトからJenkinsジョブを実行することはできますか?

これで、選択されたユーザパラメータ(おそらくチェックボックスで選択されています)によって、それらのいくつかが実行される別のジョブを設定する必要があります。

PowershellまたはBashまたはGroovyスクリプトから開始したいと考えています。出来ますか?

答えて

2

Postbuild /パイプライン・ステップでGroovyを使用している場合は、Jenkins APIを使用してジョブを開始できます。例えば

、パラメータなしのためにこのような何かを構築します。パラメータ化のための

import hudson.model.* 
Jenkins.instance.getItem("My Job").scheduleBuild(5) 

そして、このような何かを構築します。

import hudson.model.* 
Jenkins.instance.getItem("My Job").scheduleBuild(5, new Cause.UpstreamCause(currentBuild), new ParametersAction([ new StringParameterValue("My Parameter Name", "My Parameter Value") ])); 

あなたはまた、残りのJenkins Rest APIを使用することができます。たとえば、次のURLを打つことによって:

パラメータなし:

curl -X POST JENKINS_URL/job/JOB_NAME/build 

パラメータ化:

curl -X POST JENKINS_URL/job/JOB_NAME/buildWithParameters?MyParameterName=MyParameterValue 
+0

ありがとうございます! Jenkinsジョブのパラメータを設定することは可能ですか(Jenkins.instance.getItem( "My Job")。parameters?)。私は現在の仕事からのパラメータを使用したいと思います。 – matandked

+0

ねえ!私は答えをより多くの例で更新しました。 :) –

+0

"クラスを解決できません"という例外を避けるために、あなたの例に "import hudson.model。*"を追加してください。 – matandked

0

サンプル:

import hudson.model.* 
def actions=[] 
    def plist=[ ]; 
    ["ok":"ok","label":"master"].each {k,v->  
    plist << new hudson.model.StringParameterValue(k,"$v",""); 
    } 
actions.add(new hudson.model.ParametersAction(plist)); 
def future = Jenkins.instance.getItemByFullName("samples/testPipeline").scheduleBuild2(0,actions as hudson.model.Action[]); 
future.get().getLog() 
関連する問題