Jenkins Job DSL: использование параметров в GroovyScript на этапе задания

Для моего задания сборки «сгенерированное-задание-1» мне нужно несколько параметров, которые передаются, когда сборка (сгенерированного-задания-1) запускается через URL-адрес.

Вот мое определение задания с параметрами внутри 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_URI, $ DEPLOY_URI и $ {DEPLOY_URI}, и сборка завершилась сбоем с разными сообщениями об ошибках, например Нет такого свойства: DEPLOY_URI для класса: javaposse.jobdsl.dsl.helpers.step.GroovyContext

или ОШИБКА: (сценарий, строка 12) Нет такого свойства: $ DEPLOY_URI для класса: javaposse.jobdsl.dsl.helpers.step.GroovyContext

или ОШИБКА: (сценарий, строка 12) Нет сигнатуры метода: javaposse.jobdsl.dsl.helpers.step.GroovyContext. $ () применимо для типов аргументов: (script $ _run_closure1 $ _closure3 $ _closure4 $ _closure5) значения: [script $ _run_closure1 $ _closure3 $ _closure4 $ _closure5 @ 1a11cf0]

  1. Как я могу определить и передать эти параметры в свой step-script.groovy?
  2. Как я могу использовать эти параметры на других этапах, например в оболочке или batchFile?
  3. Как мне получить доступ к этим параметрам в моем step-script.groovy, чтобы работать с заданными данными?

Я искал какое-то время и очень старался заставить его работать ... Безуспешно.

Помощь очень ценится, так как я новичок в Job DSL и Groovy.

Заранее спасибо, Энн


person anha1979    schedule 16.03.2018    source источник
comment
Я нашел этот образец сценария (из wiki.jenkins-ci.org / display / JENKINS /) и заставил его работать с SystemGroovyCommand, НО: должен быть способ передавать параметры ведомым устройствам, которые тоже используются в своих сборках ?!   -  person anha1979    schedule 16.03.2018


Ответы (1)


Вам нужно заключить имя переменной в кавычки, чтобы оно оценивалось при выполнении сгенерированного задания, а не при запуске сценария DSL.

job('generated-job-1') {
    parameters {
        stringParam('DEPLOY_URI', '...', '...')
    }
    steps {
        groovyCommand(readFileFromWorkspace('stepscript.groovy')) {
            prop('DEPLOY_URI', '$DEPLOY_URI')
        }
    }
}
person daspilker    schedule 16.03.2018
comment
Спасибо за вашу любезную помощь! Оно работает. Чтение значений внутри GroovyCommand (не SystemGroovyCommand!) Можно выполнить с помощью def uri = System.getProperty ('DEPLOY_URI'). - person anha1979; 16.03.2018