Jenkins作业DSL:在作业步骤中使用groovyScript中的参数

Jenkins作业DSL:在作业步骤中使用groovyScript中的参数,jenkins,groovy,jenkins-job-dsl,Jenkins,Groovy,Jenkins Job Dsl,对于我的构建作业“generated-job-1”,我需要几个参数,这些参数在通过URL触发构建(生成的-job-1)时传入 这里是我的作业定义,其中包含SeedJob DSL中的参数: job('generated-job-1'){ label ('master') parameters{ stringParam('DEPLOY_URI', 'https://192.168.200.176/hyperManager', 'Provide the URL where Deployment

对于我的构建作业“generated-job-1”,我需要几个参数,这些参数在通过URL触发构建(生成的-job-1)时传入

这里是我的作业定义,其中包含SeedJob DSL中的参数:

job('generated-job-1'){
label ('master')
parameters{
    stringParam('DEPLOY_URI', 'https://192.168.200.176/hyperManager', 'Provide the URL where DeploymentManager can be accessed.')
    stringParam('REG_ID', '12', 'The id of the owner (Registration) of this deployment.')
}
steps {
    groovyCommand(readFileFromWorkspace('stepscript.groovy')){
        prop('name', 'value')
        prop('DEPLOY_URI', $DEPLOY_URI)
    }
}
}

我尝试使用DEPLOY\u URI、$DEPLOY\u URI和${DEPLOY\u URI},但构建失败,并显示不同的错误消息,如 没有这样的属性:类:javaposse.jobdsl.dsl.helpers.step.GroovyContext的DEPLOY_URI

或 错误:(脚本,第12行)没有这样的属性:$DEPLOY_类的URI:javaposse.jobdsl.dsl.helpers.step.GroovyContext

或 错误:(脚本,第12行)没有方法的签名:javaposse.jobdsl.dsl.helpers.step.GroovyContext.$()适用于参数类型:(脚本$\u run\u closure1$\u closure3$\u closure4$\u closure5)值:[script$\u run\u closure1$\u closure3$\u closure4]$_closure5@1a11cf0]

  • 如何定义这些参数并将其传递给我的step-script.groovy
  • 我如何在其他步骤中使用这些参数,例如shell或batchFile
  • 如何访问step-script.groovy中的这些参数来处理给定的数据
  • 我搜索了一段时间,努力让它工作。。。没有成功

    非常感谢您的帮助,因为我对Job DSL和Groovy都是新手

    提前感谢,,
    Anne

    您需要将变量名放在引号中,以便在执行生成的作业时对其进行计算,而不是在DSL脚本运行时

    job('generated-job-1') {
        parameters {
            stringParam('DEPLOY_URI', '...', '...')
        }
        steps {
            groovyCommand(readFileFromWorkspace('stepscript.groovy')) {
                prop('DEPLOY_URI', '$DEPLOY_URI')
            }
        }
    }
    

    我从中找到了这个示例脚本,并让它与SystemGroovyCommand一起工作,但是:必须有一种方法将参数传递给从属服务器,而这些从属服务器不能在其构建中使用?!谢谢你的帮助!它起作用了。可以使用def uri=System.getProperty('DEPLOY_uri')读取GroovyCommand(不是SystemGroovyCommand!)中的值。