Я новичок в pipe / groovy, у меня есть эта общая библиотека в моем хранилище как vars/triggerOtherProject.groovy
, но я не знаю, как это вызвать. Он поддерживает вызов со строковым параметром и / или параметром файла, поэтому он может принимать либо / оба, и вызывать нижестоящее задание. Вы можете показать, каким должен быть вызывающий в скрипте конвейера (или Jenkinsfile), чтобы вызывать строковый параметр ключ = значение и / или передача файла с ключом = значением строки? Выглядит так, как будто в качестве входных данных используется задание downstream name?
def call(Map Options){
def params_list = Options.str_params.inject([]) { output, key, val ->
output << [ $class: 'StringParameterValue','name': key, 'value': val ]
}
String params_file_path = Options.paramsfile
if (fileExists("$params_file_path")) {
props = readproperties file: "$params_file_path"
file_params = props.collect{ String(name: it.key, value: it.value) }
build job: "$Options.job", parameters: file_params, params_list, wait: "$Options.wait_for_build", propagate: "$Options.propagate_to_build"
}
echo "No parameters file"
build job: "$Options.job", parameters: params_list, wait: "$Options.wait_for_build", propagate: "$Options.propagate_to_build"
}
Я пробовал ниже и немного другого синтаксиса, ничего не получалось.
stage('call other prj') {
steps {
//triggerOtherProject(string('aaa':'111'))
triggerOtherProject(['aaa':'111'])
}
}
Обновление:
Это работает :
triggerBuildOnOtherProject(paramsfile:'params.txt', job:'other-job-name')
не уверен, как передать другой параметр, например param1=value1
, который будет проанализирован с использованием класса StringParameterValue