Подтвердить что ты не робот

Как использовать плагин ANSIcolor в Jenkins?

Я установил плагин ANSI-color для Jenkins. В заданиях я активировал этот плагин с профилем по умолчанию xterm.

Я не могу понять, как раскрасить вывод журнала консоли при печати на журнал из пакетных файлов (Windows-платформа).

Документация по

https://wiki.jenkins-ci.org/display/JENKINS/AnsiColor+Plugin

не помогает. Нет примеров того, как на самом деле печатать в цвете.

Я пробовал несколько разных команд эхо/печати, но я не могу заставить цвета работать.

Любой намек оценивается.

4b9b3361

Ответ 1

Разъем ANSI-color преобразует вывод консоли в HTML. Если ваш вывод содержит escape-последовательности ansi, он преобразует эти специальные последовательности char в (цветной) HTML. Вы можете настроить отображение только с помощью карты цветов ANSI.

Пример:
\ x1b [31m преобразует html цветной красный

Похоже, ваша программа не использует последовательности Escape. Но если вы написали свое собственное программное обеспечение или script, вы можете использовать эти последовательности Escape.

Пример BASH:

echo -e "\033[31mRed\033[0m"

Больше для последовательностей Escape:
Английский: http://en.wikipedia.org/wiki/ANSI_escape_code
Deutsch: http://de.wikipedia.org/wiki/Escape-Sequenz

Ответ 2

  • Дважды проверьте, действительно ли программное обеспечение выводит цвета ANSI. Например, bash script, выполняющий это эхо, будет генерировать цвет с установленным плагином AnsiColor, но он будет создавать беспорядочные escape-последовательности на выходе консоли без плагина.

В BASH:

echo -e '\033[35mPurple!\033[0m'
  1. Проверьте конфигурацию проекта, проверьте "Среда сборки" и убедитесь, что отмечен "Консольный выход цвета ANSI".

  2. Если вы не можете найти раздел "Среда сборки", перейдите в "Управление плагинами", чтобы проверить, правильно ли установлен плагин.
    (Недавно я установил плагин" Ansible "вместо" AnsiColor"....)

Ответ 3

В плагине Jenkins-ANSIcolor имеется гораздо больше документации: https://github.com/dblock/jenkins-ansicolor-plugin

Я не видел цветов, потому что я использовал цвета с высокой интенсивностью (в диапазоне 90), и они не поддерживаются. Gotta придерживаться цветов в 30-е годы

Ответ 4

Выход консоли Jenkins - это место, где вы можете потратить приличное время, пытаясь понять, что пошло не так (или, может быть, так?).

Плагины AnsiColor дают возможность цветной монохромной выходной консоли Jenkins.

Пошаговое руководство

  • Установить плагин AnsiColor В разделе "Среда сборки" проверьте цвет ANSI Console OutputJenkins -
  • Цветной выход ANSI Console - должен выглядеть как

  • TesterFenster Inside Выполнение шага оболочки добавить что-то вроде:

set +x


info() {

echo "\033[1;33m[Info]    \033[0m $1"

}

error() {

echo "\033[1;31m[Error]   \033[0m $1"

}

success() {

echo "\033[1;32m[Success] \033[0m $1"

}



info "This is information message"

error "Houston we have a problem"

success "Great!!!"


echo "Foreground colors"

echo "\033[31m Red \033[0m"

echo "\033[32m Green \033[0m"

echo "\033[33m Yellow \033[0m"

echo "\033[34m Blue \033[0m"
siz
echo "\033[35m Magneta \033[0m"

echo "\033[36m Cyan \033[0m"


echo "Background colors"

echo "\033[41m Red \033[0m"

echo "\033[42m Green \033[0m"

echo "\033[43m Yellow \033[0m"

echo "\033[44m Blue \033[0m"

echo "\033[45m Magneta \033[0m"

echo "\033[46m Cyan \033[0m"


echo "Different combinations"

echo "\033[1;31m Red \033[0m"

echo "\033[1;4;37;42m Green \033[0m"

echo "\033[1;43m Yellow \033[0m"


set -x

Ответ 5

OP явно спросил об использовании AnsiColor Jenkins Plugin в Windows, так что вот мой ответ:

cmd.exe не является эмулятором терминала

Как писал @ocodo, cmd.exe (который запускается Jenkins) не является эмулятором терминала, поэтому по умолчанию он не будет поддерживать вывод ANSI из командных команд. Так что это просто не поддерживается в Windows.

Эти тесты были неудачными в Дженкинсе с использованием этапа сборки пакета Windows:

echo \e[33m hello \e[0m
echo \033[33m hello \033[0m
echo \x1b[33m hello \x1b[0m
echo \27[33m hello \27[0m
echo \[33m hello \[0m
echo ←[33m hello ←[0m

Последняя строка: Чтобы ввести символ ESC в форме тестового окна Firefox, нажмите alt + 27, что также является escape-последовательности в большинстве редакторов. подробнее здесь: http://www.robvanderwoude.com/ansi.php#AnsiColor и https://groups.google.com/forum/#!topic/jenkinsci-users/0OcjlZQfqrk

Решение: используйте печать Python для раскраски текста

Задачи построения, в которых используется Python для вывода консоли, не имеют проблем с AnsiColor, поэтому, если Python доступен в вашей среде, где вывод консоли создается script, вы можете вводить коды ANSI оттуда. Здесь, как я работал вокруг, чтобы сделать его красочным.

  • Создайте вспомогательный script в util/ansiGreen.py так:
#!/usr/bin/env python
print("\033[32m");
  • Зарегистрируйтесь как env var на уровне вашей глобальной конфигурации сборки:
set ansiGreen=python %cdRootPath%util\ansiGreen.py
  • Добавьте его в свои скрипты:
call make-some-tests.bat
if %errorlevel% gtr 0 (
    %ansiRed%
    echo [ERROR] You screwed up trunk!
    %ansiOff%
)

Как вы можете видеть, требуется также %ansiOff%, чтобы закончить раскраску (просто "\033[0m", напечатанный через python). Остальное после %ansiRed% будет красным.

Этот script запускается на подчиненном устройстве Jenkins. Чтобы установить и получить среду непосредственно внутри этапа сборки партии Jenkins, это еще одна проблема.

Это немного уродливо, но после многих исследований это, по-видимому, лучшее решение, позволяющее AnsiColor быть возвращенным мастеру Windows Jenkins из ведомого Windows Jenkins.