Jenkins Pipeiline - команда оболочки добавляет одинарные кавычки для аргумента - PullRequest
0 голосов
/ 20 сентября 2019

Я довольно новичок в конвейерах Groovy и Jenkins.Я пытаюсь запустить приложение командной строки python из конвейера jenkins в команде shell, но моя сборка завершается неудачно, поскольку один из аргументов использует символ pipe (|), а конвейер интерпретирует и добавляет в команду одинарные кавычки.

Ниже мой конвейер, где я передаю TAGS как параметры сборки jenkins, где значение задано как "test1 | test2"

pipeline {
    echo "${TAGS}"
        stage('Shoot tests') {

 stage('Shoot tests') {
            echo "${TAGS}"
            echo "-tags=\\\"${TAGS}\\\""
            echo "-tags=\"${TAGS}\""
            sh "python /orchestrator.py -server=${SERVER_URL} -tags=\"${TAGS}\" -output-dir=${output_base} || true" 
        }

}

Консоль печатает, как показано ниже:

[Pipeline] stage
[Pipeline] { (Shoot tests)
[Pipeline] echo
14:57:51  "test1|test2"
[Pipeline] echo
14:57:51  -tags=\""test1|test2"\"
[Pipeline] echo
14:57:51  -tags=""test1|test2""
[Pipeline] sh
14:57:51  + python /orchestrator.py -server=https://test.net '-tags="test1|test2"' -output-dir=outputs

Не могли бы вы мне помочь, как избежать одиночной кавычки ('') вокруг аргумента -tags ??

Я хочу, чтобы команда была такой

python /orchestrator.py -server = https://test.net -tags = "test1 | test2" -output-dir = output

в настоящее время он выглядит как

python /orchestrator.py -server = https://test.net '-tags = "test1 | test2"' -output-dir = output

...