我分开了很小的詹金斯工作。是否可以从Powershell或Bash或Groovy脚本执行Jenkins作业?
现在我需要配置另一个根据用户参数选择的作业(可能通过复选框选择)来执行其中的一些作业。
我想从Powershell或Bash或Groovy脚本启动它们。可能吗?
我分开了很小的詹金斯工作。是否可以从Powershell或Bash或Groovy脚本执行Jenkins作业?
现在我需要配置另一个根据用户参数选择的作业(可能通过复选框选择)来执行其中的一些作业。
我想从Powershell或Bash或Groovy脚本启动它们。可能吗?
如果您在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
样本:
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()
谢谢!是否可以设置Jenkins作业参数(Jenkins.instance.getItem(“我的作业”)参数?)。我想使用当前工作中的参数。 – matandked
是的!我用更多的例子更新了答案。 :) –
请问您能否在您的示例中添加“import hudson.model。*”以避免“无法解决课程”异常? – matandked