aws sam cli-output в консоли jenkins - PullRequest
       31

aws sam cli-output в консоли jenkins

0 голосов
/ 19 февраля 2020

Начиная с версии 0.33.1, aws -sam-cli поддерживает цветной вывод. Я пытаюсь запустить команду sam deploy из конвейера Jenkins, и вывод не отображается в цветном формате. Я установил плагин ANSIColor Jenkins и обернул команду sam deploy ansiColor('xterm') {}. Команда работает, как и ожидалось, и стек Cloudformation создается. Проблема заключается в том, что вывод не в цветном формате.

node {
stage('Example') {
    ansiColor('xterm') {
        sh "sam deploy --parameter-overrides ${someparameter} --template-file ${templatefile} --stack-name ${stackname} --capabilities CAPABILITY_NAMED_IAM  --no-fail-on-empty-changeset --no-execute-changeset"
   }
 }
}

Чтобы проверить мой Jenkins, я попробовал тестовый фрагмент кода в Jenkins, и он отобразил цветной вывод.

ansiColor('xterm') {
    stage "\u001B[31mI'm Red\u001B[0m Now not"
}

enter image description here

Таким образом, Jenkins может отображать цвет ANSI, но вывод aws-sam-cli не в цветном формате.

Любые идеи или указатели будут полезны.

1 Ответ

1 голос
/ 19 февраля 2020

aws-sam-cli использует библиотеку click для форматирования своего вывода, включая обработку цвета.

Документация для click объясняет, почему вы видите что вы видите:

Начиная с Click 2.0, функция echo () получила дополнительную функциональность для работы с цветами и стилями ANSI. [...]

В первую очередь это означает, что:

  • Функция echo () Click автоматически удалит цветовые коды ANSI, если поток не подключен к терминалу.

Это типичное поведение большинства программ, однако некоторые программы допускают его переопределение, обычно с параметром --color.

В вашем случае я бы предложил запросить улучшение click средство отслеживания проблем .

Редактировать: уже был один .

...