Allure отчеты перестали открываться в Jenkins

Доброго времени суток. Внезапно появилась проблема с доступом к отчетам через Jenkins. Продолжительное время все отрабатывало как надо, но буквально несколько дней назад отчеты перестали открываться. При попытке пройти по иконке-линку в Jenkins джобе отображается лоадинг бар с признаками проблем с кодировкой:

Консоль билда говорит что отчет успешно сгенерирован:

[workspace] $ /opt/java/jenkins/allure-commandline-1.4.19/bin/allure generate “/var/lib/jenkins/jobs/QA-WL_Functional_new/workspace/target/allure-results” “/var/lib/jenkins/jobs/QA-WL_Functional_new/workspace/allure6630090149295823508.tmp/environment” -o “/var/lib/jenkins/jobs/QA-WL_Functional_new/workspace/allure6630090149295823508.tmp/allure-report”
Report successfully generated to the directory “/var/lib/jenkins/jobs/QA-WL_Functional_new/workspace/allure6630090149295823508.tmp/allure-report”. Use allure report open command to show the report.

allure-maven-plugin 2.5
allure-commandline 1.4.19

Я грешу на сервак, на котором стоит Jenkins. Несколько дней назад админ прикрутил стандартные HTML репорты, я подумал что причина в этом, но прогнав джобу с выключенными репортами проблема не решилась. Доступа ковыряться в серваке и настройках Jenkins у меня нет, со своей стороны в pom.xml ничего не менял, настройки все те же что были всегда. Предположил что дело может быть в браузере, недавно Firefox обновился до 43.0.1 - попробовал запускать в 42 версии - никакой разницы. Буду благодарен за советы, что это может быть и как это побеждать.

Сталкивался с таким на хроме, но там проблема была с тем, что хром блокировал js с локального файла, приходилось открывать через jetty

ви можете просто использовать не плагин , а собирать репорт в артифакти и через index.html его от туда откривать прямо в браузере, - я так делаю и довольно удобно

Тут, по-ходу проблема не с Allure. HTML-report тож не работает. Вероятнее всего, проблема скрывается в обновке Jenkins.

1 лайк

Именно. Протестировал дома. Изначально стояла версия Jenkins 1.638, буквально вчера вечером отчеты работали. Сегодня с утра обновил до 1.643 и проблема воспроизвелась. Закосил под ноль, установил заново 1.638 - проблема решилась.

Тут вот еще какой момент, админ оговорился, что там была уязвимость (в Дженкинсе) и вот они ее исправили.

Откат на старую версию - это не решение. Вы ведь не будете всю жизнь на ней висеть? В последних версиях Jenkins ввели content security policy header, который добавляет головной боли всем, кто использует html репорты. Не только Allure. Решается путем запуска Jenkins со спец. command-line аргументом (в зависимости от того, какой контент вам необходимо разрешать).

Применительно к Allure, разработчики уже обновили доки с необходимыми настройками.

3 лайка

Haaallelujah!

  1. Update Jenkins
  2. Go to Manage Jenkins
  3. Go to Script Console
  4. System.setProperty(hudson.model.DirectoryBrowserSupport.class.getName() + “.CSP”, “default-src ‘self’; script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’; style-src ‘self’ ‘unsafe-inline’;”)
  5. Run
  6. Allure reports are fully functional

Решение под Linux:
В файле /etc/default/jenkins прописываем строку:

JAVA_ARGS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';\" -Djenkins.model.DirectoryBrowserSupport.CSP=\"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src
'self' 'unsafe-inline';\""

Далее - перезапускаем Jenkins:

sudo service jenkins restart

Обратите внимание!
Распространённая ошибка: добавление в файл НЕСКОЛЬКИХ строк JAVA_ARGS, из которых срабатывает последняя. Нужно все параметры вписывать в одну строку JAVA_ARGS через пробел, остальные строки JAVA_ARGS закомментировать с помощью # или удалить.
Если в параметрах встречаются кавычки (как в примере выше) - нужно экранировать их обратным слешем: ".

После перезагрузки Jenkins отчёты Allure корректно открываются.