是否可以从Powershell或Bash或Groovy脚本执行Jenkins作业?

时间:2016-08-29 07:05:06

标签: bash powershell jenkins groovy

我把Jenkins的工作分开了。

现在我需要配置另一个作业,这取决于用户参数选择(可能通过复选框选择?)将执行其中一些作业。

我想从Powershell或Bash或Groovy脚本启动它们。有可能吗?

2 个答案:

答案 0 :(得分:2)

如果您在Postbuild / pipe步骤中使用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

答案 1 :(得分: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()