#shell #jenkins #groovy
#оболочка #дженкинс #groovy
Вопрос:
При выполнении команды curl с использованием sh в конвейере Jenkins запрос curl GET после «amp;» не отправляется.
pipeline{
agent{
node{
label 'xxxx'
}
}
stages{
stage('first'){
steps{
script{
def url = 'xxxxx/sonar/api/qualitygates'
def project = 'xxxx'
def pr = 'xxx'
sh "curl -u xxxx: ${url}/project_status?projectKey=${project}amp;branch=${pr}"
}
}
}
}
}
Каким-то образом «amp;» и все, что после этого, не считывается во время выполнения команды.
Консольный вывод в Jenkins
branch=xxxx
curl -u xxxx: 'xxxxxx/sonar/api/qualitygates/project_status?projectKey=xxxxx'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
Комментарии:
1. Ваш последний comamd после «amp;» ничего не делает? Это просто branch= ${pr} . Таким образом, вывод не будет отображаться
2. Добавьте дополнительные двойные кавычки вокруг URL-адреса или экранируйте amp; с помощью amp;
3. Спасибо, это сработало,
sh "curl -u xxxx: " url "/project_status?projectKey=${project}"amp;branch="${pr}"
Ответ №1:
для amp; в URL-адресе вы должны добавить для этого следующим образом: «curl URL/param1=value1amp;param2=value2»