Я довольно новичок в конвейерах 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