Tengo un problema extraño con el complemento Jenkins HTML Publisher, en el que todo el CSS elegante que he agregado al informe se elimina cuando se ve en Jenkins. Si descargo el informe a local, puedo ver el formato CSS. ¿Hay alguna configuración en Jenkins que permita ver CSS?
Mi configuración de editor HTML en Jenkins:
Mi página de informe cuando se muestra en Jenkins:
Mi página de informe cuando se muestra en local:
html
css
jenkins
jenkins-plugins
Vall
fuente
fuente
Respuestas:
Resolví el problema. Compartiéndolo aquí para otros usuarios.
CSS se elimina debido a la Política de seguridad de contenido en Jenkins. ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy )
La regla predeterminada se establece en:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
Este conjunto de reglas da como resultado lo siguiente:
Para relajar esta regla, vaya a
haga clic en la consola de secuencia de comandos a la izquierda y escriba el siguiente comando:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
y presione Ejecutar. Si ve la salida como 'Resultado:' debajo del encabezado "Resultado", la protección está desactivada. Vuelva a ejecutar su compilación y podrá ver que los nuevos archivos HTML archivados tendrán el CSS habilitado.
fuente
En CentOs , para habilitar imágenes en informes 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:;\""
Esto funcionará incluso después de reiniciar el servidor de jenkins.
Directiva
Valor fuente
Consulte más información sobre la política de seguridad del contenido aquí.
fuente
<object type="image/svg+xml" data="imgs/lifecycle-diagram.svg"><span class="alt">lifecycleDiagram</span></object>
(resultado de la documentación interactiva del asciidoctor spring-rest para el diagrama plantuml incrustado), necesitaría establecer object-src en self. Aviso de escape: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
con la variableJAVA_ARGS
Vaya a "Administrar Jenkins" -> "Consola de secuencia de comandos" y ejecute el siguiente comando:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
fuente
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
(La siguiente solución es para Windows).
Una solución permanente es cambiar una línea
[Jenkins directory]\jenkins.xml
(para mí está enC:\Jenkins\jenkins.xml
)<executable>java.exe</executable> <arguments>[arguments are here]</arguments>
Agregue el siguiente argumento a la lista de argumentos separados por espacios en blanco:
Luego, reinicie el servicio de Jenkins para recoger el cambio.
fuente
-Dfile.encoding=UTF-8
a los argumentosPuede solucionar esto usando el comando groovy como se especifica en la respuesta de Vall .
El efecto está en su lugar hasta que Jenkins se reinicia y luego tienes que volver a hacerlo.
Una solución para resolver este problema es configurar un trabajo que haga esto por usted cada vez que se inicie jenkins.
Puede hacer esto usando el complemento Startup Trigger .
Después de instalarlo, cree un nuevo trabajo y tendrá una nueva casilla de verificación en la sección Build Triggers que tendrá que marcar.
Luego agregue un paso de compilación de script de Execute system Groovy con el comando:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Guarde y todo debería funcionar.
fuente
Para la versión de Ubuntu 14, los complementos especiales fueron útiles:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - Para iniciar el trabajo en el inicio de jenkins
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - Para ejecutar el script System Groovy
E hice un trabajo, que comienza con el reinicio de Jenkins y establece el parámetro.
Y agregado el script Groovy del sistema para establecer los parámetros. System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "caja de arena; img-src 'self';")
fuente
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 *")
Ir
y escriba el siguiente comando:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
luego presione Ejecutar. si obtiene el resultado como 'Resultado', vuelva a ejecutar la compilación, verifique el formato del informe HTML
fuente
Para configurar permanentemente, cree un archivo de script Groovy $ JENKINS_HOME / init.groovy , o cualquier archivo .groovy en el directorio $ JENKINS_HOME / init.groovy.d / con el siguiente contenido:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src 'self'; img-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline';")
systemctl reiniciar jenkins
https://wiki.jenkins.io/display/JENKINS/Post-initialization+script
fuente
Abra el archivo jenkins.xml y copie los argumentos como se muestra a continuación. se arreglará permanentemente. Una vez hecho esto, reinicie su máquina.
<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
fuente
En CentOS , la siguiente solución (que se sugirió en los comentarios de otra respuesta) es la única que me ha funcionado:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
Mi problema particular era que faltaban imágenes / css en los informes de Serenity BDD. Después de realizar estos pasos, mis informes de Serenity tenían todas las imágenes / css renderizadas correctamente, incluidos los informes de compilaciones que se habían ejecutado antes de este cambio. Esta solución también funcionará para cualquier informe basado en html publicado.
fuente
Es demasiado tarde para responder, pero pensé en compartir.
Estaba luchando con Jenkins implementado en Tomcat, intenté ejecutar el script, ayuda pero desaparece si se reinicia Tomcat.
Hizo la corrección permanente estableciendo la propiedad en catalina.properties en tomcat.
Archivo de propiedades: tomcat_installation_dir / conf / catalina.properties Simplemente copie y pegue la siguiente línea en catalina.properties al final (puede configurarlo en cualquier lugar para no alterar las propiedades existentes)
-Dhudson.model.DirectoryBrowserSupport.CSP = ""
fuente
Tuve los mismos problemas después de agregar HTTPS a mis jenkins. En caso de que tenga el mismo problema, la solución es fácil: configure su URL de Jenkins para usar el protocolo HTTPS en lugar de HTTP. Se puede configurar a través de la configuración de jenkins -> url de jenkins
fuente
Para establecer la propiedad del sistema de forma permanente si usa Jenkins-X , cree el archivo
myvalues.yaml
en el directorio actual, con el siguiente contenido:jenkins: Master: JavaOpts: > -Dhudson.model.DirectoryBrowserSupport.CSP=
Luego reinicie la plataforma jenkins-x, lo que se puede hacer actualizándola:
$ jx upgrade platform --always-upgrade # Presumably jx.exe is used if on Windows (not tested)
Para evitar actualizar la plataforma, simplemente actualícela a la fuerza a la misma versión:
$ version=$(jx version --no-version-check\ | grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //') $ jx upgrade platform --version ${version} --always-upgrade
fuente
Para aquellos que están usando el
asciidoctor-maven-plugin
complemento para producir un documento HTML a partir del archivo asciidoc para publicarlo en Jenkins, actualice la configuración del complemento, agregue ellinkcss
atributo:<configuration> <attributes> <linkcss>true</linkcss> </attributes> <backend>html5</backend> <outputDirectory>${project.build.directory}/generated-resources</outputDirectory> </configuration>
fuente
En Debian / Ubuntu , en instalaciones aptitude :
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
alJAVA_ARGS
(por ejemploJAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
Esto fue suficiente para mí, pero para ver la lista completa de parámetros, vea esta respuesta .
fuente