Как я могу настроить Jenkins для отображения моих журналов в рабочей области? - PullRequest
11 голосов
/ 14 февраля 2012

Я использую Jenkins для CI - и хочу иметь возможность выставлять журналы, чтобы нам не приходилось подключаться к окну CI через telnet, чтобы посмотреть, что происходит.

Есть ли плагин, который будет делатьэтот?Или мне просто нужно написать скрипт?

Ответы [ 3 ]

9 голосов
/ 29 августа 2013

Мой ответ о чтении файлов журнала сервера приложений / контейнера из различных полей , чем работает Jenkins.Например, если вы используете Jenkins для построения своих войн, а затем развертываете их в нескольких средах и хотите читать файлы журналов с вашего CI-сервера Jenkins без необходимости вручную подключать другие ssh / telnet.

Вы можете создать проект / задание Jenkins, которое сделает это за вас, после создания проекта Jenkins вы найдете параметр Configure, а внутри него есть параметр в разделе Build, где вы можете написать сценарий оболочки:

Shell script area

Ваш сценарий может выглядеть примерно так:

#!/bin/sh

USER=<your ssh user>
HOST=<your remote host>
LOG_DIR=<your log file location>
FILE=<your log file>

cmd="ssh $USER@$HOST cat $LOG_DIR/$FILE"
echo $cmd
$cmd

Или что-то более сложное, например, передача параметров перед построением задания Jenkins, чтобы ваши пользователи могли выбиратькакую среду и файл журнала они хотят видеть, есть опция «Эта сборка параметризована», которую вы можете выбрать и добавить свои параметры:

Adding parameters

При такой конфигурации пользовательбудет выглядеть примерно так при попытке создать проект:

enter image description here

Сценарий оболочки можетВот эти параметры:

#!/bin/sh

USER=<your ssh user>
LOG_DIR_DEV=<log files location in dev>
LOG_DIR_QA=<log files location in qa>

if [ $ENVIRONMENT = "dev" ]; then
  HOST=<your remote host for dev>
  LOG_DIR=$LOG_DIR_DEV
fi
if [ $ENVIRONMENT = "QA" ]; then
  HOST=<your remote host for qa>
  LOG_DIR=$LOG_DIR_QA
fi

echo ENVIRONMENT=$ENVIRONMENT
cmd="ssh $USER@$HOST cat $LOG_DIR/$FILE"
echo $cmd
$cmd

После создания задания они могут видеть выходные данные из журналов в консоли заданий Jenkins, например:

Console Output

Если ваши файлы журнала слишком длинные, возможно, вы можете использовать "tail" вместо "cat" в скрипте.

7 голосов
/ 14 февраля 2012

Если вы имеете в виду общий вывод сборки Jenkins, он доступен через веб-интерфейс для каждой сборки по ссылке «Вывод на консоль».

Если вы имеете в виду определенный файл журнала, созданный в рабочей области во время сборки, вы можете выбрать опцию «Архивировать артефакты» в разделе «Действия после сборки» конфигурации вашей работы.

Здесь вы можете указать шаблон файла, например, **/*.log.

Любые файлы в рабочей области, соответствующие этому шаблону, будут архивироваться в конце каждой сборки и будут отображаться на веб-странице сборки.

Обратите внимание, что сборка завершится неудачей, если нет файлов, соответствующих этому шаблону.

2 голосов
/ 28 ноября 2012

Вы можете создавать журналы во время сборки и прикреплять их как артефакт, однако ядро ​​jenkins не позволяет сохранять журнал консоли в рабочую область.Если вы хотите сохранить журнал консоли, вам нужно установить плагин ConsoleLogToWorkspace .Этот плагин даст вам возможность сохранить весь журнал консоли jenkins.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...