J'ai un problème étrange avec le plugin Jenkins HTML Publisher, dans lequel tout le CSS sophistiqué que j'ai ajouté au rapport est supprimé lorsqu'il est visualisé dans Jenkins. Si je télécharge le rapport en local, je peux voir le formatage CSS. Y a-t-il un paramètre dans Jenkins qui permet d'afficher CSS?
Mes paramètres d'éditeur HTML dans Jenkins:
Ma page de rapport lorsqu'elle est affichée dans Jenkins:
Ma page de rapport lorsqu'elle est affichée en local:
Réponses:
J'ai compris le problème. Partage-le ici pour d'autres utilisateurs.
CSS est supprimé en raison de la politique de sécurité du contenu de Jenkins. ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy )
La règle par défaut est définie sur:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
Cet ensemble de règles donne les résultats suivants:
Pour assouplir cette règle, accédez à
cliquez sur Console de script à gauche et saisissez la commande suivante:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
et appuyez sur Exécuter. Si vous voyez la sortie comme «Résultat:» sous l'en-tête «Résultat», la protection est désactivée. Relancez votre build et vous pouvez voir que les nouveaux fichiers HTML archivés auront le CSS activé.
la source
Dans CentOs , pour activer les images dans le rapport 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:;\""
Cela fonctionnera même après le redémarrage du serveur de jenkins.
Directif
Valeur source
Veuillez consulter la politique de sécurité du contenu ici
la source
<object type="image/svg+xml" data="imgs/lifecycle-diagram.svg"><span class="alt">lifecycleDiagram</span></object>
(résultat de la documentation interactive asciidoctor spring-rest pour le diagramme plantuml intégré), vous devez définir object-src sur self. Avis de fuite: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
avec la variableJAVA_ARGS
Allez dans «Gérer Jenkins» -> «Console de script» et exécutez la commande ci-dessous:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
la source
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
(La solution suivante est pour Windows.)
Une solution permanente est de changer une ligne
[Jenkins directory]\jenkins.xml
(pour moi, c'est àC:\Jenkins\jenkins.xml
)<executable>java.exe</executable> <arguments>[arguments are here]</arguments>
Ajoutez l'argument suivant à la liste d'arguments séparés par des espaces:
Ensuite, redémarrez le service Jenkins pour récupérer la modification.
la source
-Dfile.encoding=UTF-8
aux argumentsVous pouvez résoudre ce problème en utilisant la commande groovy comme spécifié dans la réponse de Vall .
L'effet est en place jusqu'à ce que Jenkins redémarre et ensuite vous devez le refaire.
Une solution pour résoudre ce problème consiste à configurer un travail qui le fera pour vous chaque fois que jenkins démarre.
Vous pouvez le faire en utilisant le plugin Startup Trigger .
Après l'avoir installé, créez un nouveau travail et vous aurez une nouvelle case à cocher dans la section Build Triggers que vous devrez cocher.
Ensuite, ajoutez une étape de génération de script Groovy système Execute avec la commande:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Enregistrez et tout devrait fonctionner.
la source
Pour la version Ubuntu 14, des plugins spéciaux étaient utiles:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - Pour démarrer le travail au démarrage de jenkins
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - Pour exécuter le script System Groovy
Et j'ai fait un travail, qui commence au redémarrage de Jenkins et définit les paramètres.
Et ajout du script système Groovy pour définir le paramètre System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "bac à sable; img-src 'self';")
la source
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 *")
Aller à
et tapez la commande suivante:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
puis appuyez sur Exécuter. si vous obtenez la sortie comme "Résultat", réexécutez la construction, vérifiez le format du rapport HTML
la source
Pour définir de manière permanente, créez un fichier de script Groovy $ JENKINS_HOME / init.groovy , ou tout fichier .groovy dans le répertoire $ JENKINS_HOME / init.groovy.d / avec le contenu suivant:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src 'self'; img-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline';")
systemctl redémarrer jenkins
https://wiki.jenkins.io/display/JENKINS/Post-initialization+script
la source
Ouvrez le fichier jenkins.xml et copiez les arguments comme ci-dessous. il réparera définitivement. Une fois terminé, redémarrez votre machine.
<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
la source
Sur CentOS , la solution ci-dessous (qui a été suggérée dans les commentaires d'une autre réponse) est la seule qui a fonctionné pour moi:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
Mon problème particulier était des images / css manquantes dans les rapports Serenity BDD. Après avoir effectué ces étapes, mes rapports Serenity avaient toutes les images / rendu css correctement, y compris les rapports des versions qui avaient été exécutées avant ce changement. Cette solution fonctionnera également pour tout rapport HTML publié.
la source
Il est trop tard pour répondre mais pensé à partager.
J'avais du mal avec Jenkins déployé sur Tomcat, j'ai essayé l'exécution du script, cela aide mais disparaît si Tomcat est redémarré.
Correction permanente en définissant la propriété dans catalina.properties dans tomcat.
Fichier de propriétés: rép_installation_tomcat / conf / catalina.properties Il suffit de copier-coller la ligne ci-dessous dans catalina.properties à la fin (vous pouvez le définir n'importe où pour ne pas gâcher les propriétés existantes)
-Dhudson.model.DirectoryBrowserSupport.CSP = ""
la source
J'ai eu les mêmes problèmes après avoir ajouté HTTPS à mes jenkins. Si vous rencontrez le même problème, la solution est simple: définissez votre URL Jenkins pour utiliser le protocole HTTPS au lieu de HTTP. Il peut être configuré via la configuration jenkins -> URL jenkins
la source
Pour définir la propriété système de manière permanente si vous utilisez Jenkins-X , créez le fichier
myvalues.yaml
dans le répertoire courant, avec le contenu suivant:jenkins: Master: JavaOpts: > -Dhudson.model.DirectoryBrowserSupport.CSP=
Ensuite, redémarrez la plate-forme jenkins-x, ce qui peut être fait en la mettant à niveau:
$ jx upgrade platform --always-upgrade # Presumably jx.exe is used if on Windows (not tested)
Pour éviter de mettre à niveau la plate-forme, il suffit de la mettre à niveau de force vers la même version:
$ version=$(jx version --no-version-check\ | grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //') $ jx upgrade platform --version ${version} --always-upgrade
la source
Pour ceux qui utilisent le
asciidoctor-maven-plugin
plugin pour produire un document HTML à partir du fichier asciidoc afin de le publier davantage sur Jenkins, mettez à jour la configuration du plugin, ajoutez l'linkcss
attribut:<configuration> <attributes> <linkcss>true</linkcss> </attributes> <backend>html5</backend> <outputDirectory>${project.build.directory}/generated-resources</outputDirectory> </configuration>
la source
Sur Debian / Ubuntu , dans les installations aptitude :
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
auJAVA_ARGS
(par exempleJAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
Cela me suffisait, mais pour la liste complète des paramètres, voyez cette réponse .
la source