Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从groovy脚本运行jenkins作业_Jenkins_Groovy_Jenkins Groovy - Fatal编程技术网

如何从groovy脚本运行jenkins作业

如何从groovy脚本运行jenkins作业,jenkins,groovy,jenkins-groovy,Jenkins,Groovy,Jenkins Groovy,可以从groovy脚本运行jenkins作业吗 我知道有可能像这样从管道中运行jenkins作业 构建作业:“测试” 这也不起作用 构建('测试') 错误 构建作业:“测试” 编辑后执行系统Groovy脚本并添加 def currentBuild = Thread.currentThread().executable def job = hudson.model.Hudson.instance.getJob("jobname") println(job) def params = new Str

可以从groovy脚本运行jenkins作业吗

我知道有可能像这样从管道中运行jenkins作业

构建作业:“测试”

这也不起作用

构建('测试')

错误

构建作业:“测试”

编辑后执行系统Groovy脚本并添加

def currentBuild = Thread.currentThread().executable
def job = hudson.model.Hudson.instance.getJob("jobname")
println(job)
def params = new StringParameterValue('version', '1.0.0')  
println(params)
def params1 = new StringParameterValue('target', "dev")  
println(params1)
def paramsAction = new ParametersAction(params, params1) 
println(paramsAction)
def cause = new hudson.model.Cause.UpstreamCause(currentBuild)
println(cause)
def causeAction = new hudson.model.CauseAction(cause) 
println(causeAction)
println('test')
Hudson.instance.queue.schedule(job, 0, causeAction, paramsAction)
我在这行Hudson.instance.queue.schedule(作业,0,原因动作,参数动作)上出错


构建步骤“执行系统Groovy脚本”将构建标记为失败

对于我来说,我需要在主机上运行代码,以便快速访问Jenkins对象,并构建具有适当权限的作业,以便在获取的信息中发送邮件

我使用构建模块执行系统Groovy脚本来运行脚本,并附加了以下代码:

// The job you want to run from groovy
def job = hudson.model.Hudson.instance.getJob("SendEmailJob")

// jobsList is a list of jobs of interest formated as HTML
def body = jobsList

def params = []

params += new StringParameterValue('TO', "<team@example.com>")
params += new StringParameterValue('BODY_AS_HTML', body)
params += new StringParameterValue('SUBJECT', "List of jobs of interest")

def paramsAction = new ParametersAction(params)
def cause = new hudson.model.Cause.UpstreamCause(build)
def causeAction = new hudson.model.CauseAction(cause)
hudson.model.Hudson.instance.queue.schedule(job, 0, causeAction, paramsAction)
//要从groovy运行的作业
def job=hudson.model.hudson.instance.getJob(“sendmailjob”)
//jobsList是格式化为HTML的感兴趣的作业列表
def body=作业列表
def参数=[]
params+=新StringParameterValue('TO',“”)
params+=新的StringParameterValue('BODY_AS_HTML',BODY)
params+=new StringParameterValue(“主题”,“感兴趣的作业列表”)
def paramsAction=新参数(params)
def cause=new hudson.model.cause.UpstreamCause(构建)
def causeAction=新哈德逊模型causeAction(原因)
hudson.model.hudson.instance.queue.schedule(作业,0,原因动作,参数动作)

这是基于问题

对不起,我不理解你的问题。您希望在哪个范围或何处执行脚本?是否要使用groovy脚本启动Jenkins构建?
构建作业:“test”
应该可以工作。您有什么错误?
构建作业:
步骤应仅适用于管道。有关在管道外部使用Groovy脚本触发作业的信息,请参阅。@MateuszSobczak您可能必须从Manage Jenkins>进程内脚本批准中批准脚本。
java.lang.NullPointerException
at hudson.model.queue.Tasks.getOwnerTaskOf(Tasks.java:60)
at com.cloudbees.hudson.plugins.folder.ItemDeletion.getItemOf(ItemDeletion.java:197)
at com.cloudbees.hudson.plugins.folder.ItemDeletion.shouldSchedule(ItemDeletion.java:174)
at hudson.model.Queue.schedule2(Queue.java:589)
at hudson.model.Queue.schedule2(Queue.java:712)
at hudson.model.Queue.schedule(Queue.java:705)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:192)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:149)
at Script1.run(Script1.groovy:47)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:594)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript.evaluate(SecureGroovyScript.java:343)
at hudson.plugins.groovy.SystemGroovy.run(SystemGroovy.java:95)
at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:59)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
at hudson.model.Build$BuildExecution.build(Build.java:206)
at hudson.model.Build$BuildExecution.doRun(Build.java:163)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
at hudson.model.Run.execute(Run.java:1818)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
// The job you want to run from groovy
def job = hudson.model.Hudson.instance.getJob("SendEmailJob")

// jobsList is a list of jobs of interest formated as HTML
def body = jobsList

def params = []

params += new StringParameterValue('TO', "<team@example.com>")
params += new StringParameterValue('BODY_AS_HTML', body)
params += new StringParameterValue('SUBJECT', "List of jobs of interest")

def paramsAction = new ParametersAction(params)
def cause = new hudson.model.Cause.UpstreamCause(build)
def causeAction = new hudson.model.CauseAction(cause)
hudson.model.Hudson.instance.queue.schedule(job, 0, causeAction, paramsAction)