команда jenkins groovy shell curl не работает

#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»