Я пытаюсь создать трубопровод Jenkins, где мне нужно выполнить несколько команд оболочки и использовать результат одной команды в следующей команде или около того. Я обнаружил, что обертывание команд в пару из трех одинарных кавычек '''
может сделать то же самое. Тем не менее, я сталкиваюсь с проблемами при использовании канала для подачи вывода одной команды на другую команду. Например
stage('Test') {
sh '''
echo "Executing Tests"
URL='curl -s "http://localhost:4040/api/tunnels/command_line" | jq -r '.public_url''
echo $URL
RESULT='curl -sPOST "https://api.ghostinspector.com/v1/suites/[redacted]/execute/?apiKey=[redacted]&startUrl=$URL" | jq -r '.code''
echo $RESULT
'''
}
Команды с трубой работают неправильно. Вот выход консоли jenkins:
+ echo Executing Tests
Executing Tests
+ curl -s http://localhost:4040/api/tunnels/command_line
+ jq -r .public_url
+ URL=null
+ echo null
null
+ curl -sPOST https://api.ghostinspector.com/v1/suites/[redacted]/execute/?apiKey=[redacted]&startUrl=null