Трубопроводы Дженкинса, корпус и трубы - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь получить команду оболочки с конвейерами, работающими с конвейерами Jenkins.Это связано с: конвейер Jenkins sh, похоже, не учитывает pipe в команде оболочки .Я также обнаружил: трубопровод Дженкинса, bash и pipe

Однако мой успех с ним не увенчался успехом.Я могу буквально скопировать / вставить разрешение первого сообщения в моем конвейере, и оно работает (по крайней мере, оно пытается выполнить оболочку, происходит сбой из-за отсутствия pom.xml).

Когда я пытаюсь изменитьКомандная оболочка, в зависимости от моих потребностей, не работает:

def bgd_discovery = $/eval "cf apps | grep ${appHost}.${host} | cut -d ' ' -f 1 | sed 's/${args.appName}-bgd//'"/$
echo "${bgd_discovery}"

Jenkins выдает ошибку метода DSL:

java.lang.NoSuchMethodError: No such DSL method 'eval "cf apps | grep [...app host...] | cut -d ' ' -f 1 | sed 's' found among steps [...]

Кажется, что сначала он останавливается / sed, но это не такпроблема, потому что это работает (из первого поста):

def ver_script = $/eval "sed -n '/<version>/,/<version/p' pom.xml | head -1 | sed 's/[[:blank:]]*<\/*version>//g'"/$

Интересно, что вот еще один признак проблемы: добавленный дефис в конце sed регулярного выражения

def bgd_discovery = $/eval "cf apps | grep ${appHost}.${host} | cut -d ' ' -f 1 | sed 's/${args.appName}-bgd-//'"/$

Произвел эту ошибку:

WorkflowScript: 26: expecting '}', found '' @ line 26, column 10.
   echo "${bgd_discovery}"

Я не могу понять, что не так.

1 Ответ

0 голосов
/ 15 декабря 2018

Хорошо, я сейчас отвечу на свой вопрос.Казалось бы, что-то не так с цитатами.Я удалил их для sed, и все работает, даже без всего маршрута eval.Это прекрасно работает:

def current_deployment = sh (
        returnStdout: true,
        script: "cf apps | grep ${appName}.apps | cut -d ' ' -f 1 | sed s/${appName}-bgd-//"
);
...