Стек трассировки Jenkins, скрывающий оболочку, теряет выход - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь скрыть трассировку стека из следующего скрипта:

def status = "false"
  while (status.equals("false")) {
      sleep 5
      status = sh(
            script: "curl -s -H 'Accept: application/json' http://my.ip | jq \'.completed\' ",
            returnStdout: true
      ).trim()
    echo "status: ${status}"
  }

Выход:

+ curl -s -H 'Accept: application/json' 'http://my.ip'
+ jq .completed
status: true

Если я хочу видеть только выводимое сообщение, я должен написать «set + x» в теле скрипта. Но это приводит к тому, что статус возвращается как NULL.

status = sh(
      script:'''
      set +x
      script: "curl -s -H 'Accept: application/json' http://my.ip | jq \'.completed\'
      ''',
      returnStdout: true
).trim()

Выход:

status: NULL

Почему вывод теряется и есть ли другой способ удалить трассировку стека?

1 Ответ

0 голосов
/ 24 января 2019

Исправление здесь состоит в том, что я объявил многострочный скрипт неправильным.Для этого случая следует использовать двойные кавычки, а не одинарные.Итак, решение:

script: """
  my 
  script
  here
""",
...