У меня странная проблема с плагином Jenkins HTML Publisher, в котором весь модный CSS, который я добавил в отчет, удаляется при просмотре в Jenkins. Если я загружу отчет на локальный компьютер, я смогу увидеть форматирование CSS. Есть ли в Jenkins настройка, позволяющая просматривать CSS?
Мои настройки HTML-издателя в Jenkins:
Моя страница отчета при отображении в Jenkins:
Моя страница отчета при отображении в локальном:
Ответы:
Разобрался в проблеме. Поделиться здесь для других пользователей.
CSS исключен из-за политики безопасности контента в Jenkins. ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy )
По умолчанию установлено следующее правило:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
Этот набор правил приводит к следующему:
Чтобы ослабить это правило, перейдите к
щелкните Консоль сценариев слева и введите следующую команду:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
и нажмите "Выполнить". Если вы видите вывод «Результат:» под заголовком «Результат», значит, защита отключена. Повторно запустите вашу сборку, и вы увидите, что в новых заархивированных файлах HTML будет включен CSS.
источник
В CentOs для включения изображений в отчете html
sudo vi /etc/sysconfig/jenkins
JENKINS_JAVA_OPTION
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;\""
Это будет работать даже после перезапуска сервера jenkins.
Директива
Исходное значение
Подробнее о политике безопасности контента можно узнать здесь.
источник
<object type="image/svg+xml" data="imgs/lifecycle-diagram.svg"><span class="alt">lifecycleDiagram</span></object>
(результат интерактивной документации asciidoctor spring-rest для встроенной диаграммы plantuml), вам нужно будет установить object-src на self. Уведомление о побеге:JENKINS_JAVA_OPTIONS='-Djava.awt.headless=true -Dhudson.security.HudsonPrivateSecurityRealm.ID_REGEX="^[a-zA-Z0-9_.-]+$" -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox; default-src '\''none'\''; img-src '\''self'\''; style-src '\''self'\''; object-src '\''self'\'';"'
vi /etc/default/jenkins
переменнуюJAVA_ARGS
Перейдите в «Управление Jenkins» -> «Консоль сценариев» и выполните следующую команду:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
источник
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
(Следующее решение предназначено для Windows.)
Постоянное исправление - изменить строку
[Jenkins directory]\jenkins.xml
(для меня этоC:\Jenkins\jenkins.xml
)<executable>java.exe</executable> <arguments>[arguments are here]</arguments>
Добавьте следующий аргумент в список аргументов, разделенных пробелами:
Затем перезапустите службу Jenkins, чтобы принять изменения.
источник
-Dfile.encoding=UTF-8
аргументовВы можете исправить это, используя команду groovy, как указано в ответе Валла .
Эффект сохраняется до тех пор, пока Дженкинс не перезапустится, а потом вам придется сделать это снова.
Решение этой проблемы - настроить задание, которое будет делать это за вас всякий раз, когда jenkins запускается.
Вы можете сделать это с помощью плагина Startup Trigger .
После его установки создайте новое задание, и у вас появится новый флажок в разделе « Триггеры сборки », который вам нужно будет проверить.
Затем добавьте этап сборки сценария Groovy Execute system с помощью команды:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Сохраните и все должно работать.
источник
Для версии Ubuntu 14 полезными были специальные плагины:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - Чтобы начать работу по стартапу jenkins
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - для запуска скрипта System Groovy
И я сделал задание, которое запускается при перезапуске Jenkins и устанавливает параметр.
И добавил системный Groovy-скрипт для установки параметра. System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "песочница; img-src 'self';")
источник
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-same-origin allow-scripts; default-src 'self'; script-src * 'unsafe-eval'; img-src *; style-src * 'unsafe-inline'; font-src *")
Перейти к
и введите следующую команду:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
затем нажмите "Выполнить". если вы получаете результат как «Результат», то повторно запустите сборку, проверьте формат отчета HTML
источник
Для настройки навсегда создайте файл сценария Groovy $ JENKINS_HOME / init.groovy или любой файл .groovy в каталоге $ JENKINS_HOME / init.groovy.d / со следующим содержимым:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src 'self'; img-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline';")
systemctl перезапуск, Дженкинс
https://wiki.jenkins.io/display/JENKINS/Post-initialization+script
источник
Откройте файл jenkins.xml и скопируйте аргументы, как показано ниже. это будет исправлено навсегда. Как только это будет сделано, перезагрузите компьютер.
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox allow-scripts; default-src 'self'; style-src 'self' 'unsafe-inline';" -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments
источник
В CentOS решение ниже (которое было предложено в комментариях к другому ответу) - единственное, которое сработало для меня:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
Моя конкретная проблема заключалась в отсутствии изображений / css в отчетах Serenity BDD. После выполнения этих шагов в моих отчетах Serenity были все изображения / CSS-рендеринг должным образом, включая отчеты о сборках, которые были выполнены до этого изменения. Это решение также будет работать для любого опубликованного отчета на основе HTML.
источник
Слишком поздно отвечать, но думал поделиться.
Я боролся с Jenkins, развернутым на Tomcat, пробовал выполнить скрипт, это помогает, но уходит, если tomcat перезагружается.
Сделано постоянное исправление, установив свойство в catalina.properties в tomcat.
Файл свойств: tomcat_installation_dir / conf / catalina.properties Просто скопируйте и вставьте последнюю строку в catalina.properties (вы можете установить ее где угодно, чтобы не путаться с существующими свойствами)
-Dhudson.model.DirectoryBrowserSupport.CSP = ""
источник
У меня были те же проблемы после добавления HTTPS к моим jenkins. Если у вас возникла такая же проблема, решение простое - настройте URL-адрес Jenkins на использование протокола HTTPS вместо HTTP. Его можно настроить с помощью конфигурации jenkins -> url-адрес jenkins
источник
Чтобы установить системное свойство навсегда при использовании Jenkins-X , создайте файл
myvalues.yaml
в текущем каталоге со следующим содержимым:jenkins: Master: JavaOpts: > -Dhudson.model.DirectoryBrowserSupport.CSP=
Затем перезапустите платформу jenkins-x, что можно сделать, обновив ее:
$ jx upgrade platform --always-upgrade # Presumably jx.exe is used if on Windows (not tested)
Чтобы избежать фактического обновления платформы, просто принудительно обновите ее до той же версии:
$ version=$(jx version --no-version-check\ | grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //') $ jx upgrade platform --version ${version} --always-upgrade
источник
Для тех, кто использует
asciidoctor-maven-plugin
плагин для создания HTML-документа из файла asciidoc для дальнейшей публикации в Jenkins, обновите конфигурацию плагина, добавьтеlinkcss
атрибут:<configuration> <attributes> <linkcss>true</linkcss> </attributes> <backend>html5</backend> <outputDirectory>${project.build.directory}/generated-resources</outputDirectory> </configuration>
источник
В Debian / Ubuntu при установке aptitude :
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
вJAVA_ARGS
(напримерJAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
Мне этого было достаточно, но полный список параметров см. В этом ответе .
источник