Выход консоли Jenkins имеет эти странные символы из команды grunt [31m [[39m...

Я запускаю команду grunt-contrib-jshint, используя jenkins, и вывод на консоль содержит текст вроде:

[31m[[39m[33mL425[39m[31m:[39m[33mC29[39m[31m][39m [33mExpected a conditional expression and instead saw an assignment.[39m

Любые идеи, почему? и как это исправить.

Запуск того же script отображается непосредственно:

[L425:C29] Expected a conditional expression and instead saw an assignment.

Я проверил параметр file.encoding, который был установлен в MacRoman, и после установки export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 теперь UTF-8.

Ответ 1

Они выглядят как последовательности escape-последовательности. Посмотрите, можете ли вы передать параметр, например --no-color, команде (если инструмент поддерживает его, см. этот) или посмотрите на Плагин AnsiColor

Ответ 2

В качестве альтернативы, если вам нравятся цвета, вы можете использовать Jenkins AnsiColor Plugin, чтобы правильно отображать escape-последовательности цвета в журнале сборки.

Ответ 3

Что сработало для меня...

play -Dsbt.log.noformat=true clean compile test dist

-Dsbt.log.noformat = true подавил раскраску вывода консоли на мои сборки Play 2.1.1, делая консольный журнал Jenkins доступным для чтения. Теперь, как получить результаты теста менее XML-способом?

Ответ 4

Он выглядит как команды управления цветом, которые ваша оболочка игнорирует. С точки зрения его фиксации, это может потребовать изменения script, чтобы он не выдавал этот вывод.

Ответ 5

У меня есть другое решение для всей этой проблемы. На самом деле, ни одно из приведенных выше предложений не сработало для меня. Я использовал два типа рабов: CentOS и Ubuntu. По какой-то причине проблема затрагивала только машины CentOS, а не машины Ubuntu.

Я сравнивал "Системную информацию" для двух типов ведомых устройств, и я обнаружил, что файл. encoding устанавливается на ANSI_X3.4-1968 на узлах CentOS. Это значение по умолчанию. По умолчанию Ubuntu UTF-8.

Итак, перезапуск ведомого с опцией Advanced JVM Option -Dfile.encoding=UTF-8 сделал трюк, без необходимости подавлять цвета мокко.