Как вызвать groovy скрипт для разбора параметра файла и вызова нижестоящего задания? - PullRequest
0 голосов
/ 28 апреля 2020

Я новичок в 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

...