从groovy脚本触发参数化Jenkins作业

从groovy脚本触发参数化Jenkins作业,jenkins,groovy,jenkins-pipeline,jenkins-groovy,Jenkins,Groovy,Jenkins Pipeline,Jenkins Groovy,你好,詹金斯,朋友们 我创建了一个Jenkins Freestyle项目,其中包含step Execute Groovy脚本。从脚本中,我想在同一个Jenkins服务器上触发另一个参数化作业 有人知道我怎么做吗 def triggerBuild(paramter1, paramter2) { // trigger job with name "foo" and set the paramters param1 and param2 //to the values of the va

你好,詹金斯,朋友们

我创建了一个Jenkins Freestyle项目,其中包含step Execute Groovy脚本。从脚本中,我想在同一个Jenkins服务器上触发另一个参数化作业

有人知道我怎么做吗

def triggerBuild(paramter1, paramter2) {
   // trigger job with name "foo" and set the paramters param1 and param2 
   //to the values of the variables parameter1 and parameter2
}

确保在脚本块内调用triggerBuild。

好的,我终于找到了解决方案。我的脚本如下所示:

import hudson.model.*;

triggerBuild()

def triggerBuild(parameter1, parameter2) {
    def job = Hudson.instance.getJob('foo')

    def params = [
            new StringParameterValue('param1', 'value1'),
            new StringParameterValue('param1', 'value2')
    ]
    def future = job.scheduleBuild2(0,  new ParametersAction(params))
}

thx是的,它在整个groovy脚本文件中运行,该文件通过作业配置的“构建”部分中的“执行groovy脚本”包含。我需要进口包裹吗?您的解决方案导致我的类没有名为“build”的方法,您必须从Jenkins管道内部调用它-看到没有其他可能性了吗?由于我有freestyle项目,所以我没有脚本化的管道
import hudson.model.*;

triggerBuild()

def triggerBuild(parameter1, parameter2) {
    def job = Hudson.instance.getJob('foo')

    def params = [
            new StringParameterValue('param1', 'value1'),
            new StringParameterValue('param1', 'value2')
    ]
    def future = job.scheduleBuild2(0,  new ParametersAction(params))
}