2016-08-29 21 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() 
相关问题