2016-08-29 24 views

回答

2

如果您在Postbuild/pipeline步驟中使用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爲休息。例如,通過點擊以下網址:

無參數:

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(「我的作業」)參數?)。我想使用當前工作中的參數。 – 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() 
相關問題