У меня есть конвейер jenkins, который получает аргументы, которые будут влиять на аргументы для скрипта python, который я хочу запустить:
Файл Jenkins:
pipeline {
agent {label "master"}
parameters {
string(name: "add_option_x", defaultValue: '')
string(name: "add_option_y", defaultValue: '')
}
stages {
stage ("Z") {
agent {label "master"}
steps {
script {
sh "python my_script.py <OPTIONAL_ARGS>"
} } } }
Скрипт Python:
from argparse import ArgumentParser
p = ArgumentParser()
p.add_argument('--x')
p.add_argument('--y')
print(vars(p.parse_args()))
Теперь я хочу, чтобы через сценарий jenkins можно было отправлять 4 варианта аргументов args:
1. sh "python my_script.py"
2. sh "python my_script.py --x ${params.x}"
3. sh "python my_script.py --y ${params.y}"
4. sh "python my_script.py --x ${params.x} --y ${params.y}"
Как лучше всего это сделать?(Я не хочу иметь глобальную строку "python my_script.py" и, циклически перебирать параметры и добавлять подстроку всякий раз, когда я нахожу, что параметр не пустой. Это выглядело бы ужасно в groovy, AFAIK)