Ich habe ein seltsames Problem mit dem Jenkins HTML Publisher-Plugin, bei dem das gesamte ausgefallene CSS, das ich dem Bericht hinzugefügt habe, bei der Anzeige in Jenkins entfernt wird. Wenn ich den Bericht auf local herunterlade, kann ich die CSS-Formatierung sehen. Gibt es in Jenkins eine Einstellung, mit der CSS angezeigt werden kann?
Meine HTML Publisher-Einstellungen in Jenkins:
Meine Berichtsseite bei Anzeige in Jenkins:
Meine Berichtsseite bei Anzeige in Lokal:
html
css
jenkins
jenkins-plugins
Vall
quelle
quelle
Antworten:
Ich habe das Problem herausgefunden. Hier für andere Benutzer freigeben.
CSS wird aufgrund der Inhaltssicherheitsrichtlinie in Jenkins entfernt. ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy )
Die Standardregel lautet:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
Dieser Regelsatz führt zu folgenden Ergebnissen:
Um diese Regel zu lockern, gehen Sie zu
Klicken Sie links auf Skriptkonsole und geben Sie den folgenden Befehl ein:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
und drücken Sie Ausführen. Wenn Sie die Ausgabe als "Ergebnis:" unter der Überschrift "Ergebnis" sehen, ist der Schutz deaktiviert. Führen Sie Ihren Build erneut aus, und Sie können sehen, dass für die neuen archivierten HTML-Dateien das CSS aktiviert ist.
quelle
In CentOs , um Bilder im HTML-Bericht zu aktivieren
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:;\""
Dies funktioniert auch nach dem Neustart des Jenkins-Servers.
Richtlinie
Quellwert
Weitere Informationen zur Inhaltssicherheit finden Sie hier
quelle
<object type="image/svg+xml" data="imgs/lifecycle-diagram.svg"><span class="alt">lifecycleDiagram</span></object>
(Ergebnis einer interaktiven Dokumentation zur Asciidoctor-Federruhe für ein eingebettetes Plantuml-Diagramm), müssen Sie object-src auf self setzen. Hinweis entkommen: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
mit der VariablenJAVA_ARGS
Gehen Sie zu "Jenkins verwalten" -> "Skriptkonsole" und führen Sie den folgenden Befehl aus:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
quelle
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
(Die folgende Lösung ist für Windows.)
Eine dauerhafte Lösung besteht darin, eine Zeile zu ändern
[Jenkins directory]\jenkins.xml
(für mich ist es beiC:\Jenkins\jenkins.xml
)<executable>java.exe</executable> <arguments>[arguments are here]</arguments>
Fügen Sie der durch Leerzeichen getrennten Liste von Argumenten das folgende Argument hinzu:
Starten Sie dann den Jenkins-Dienst neu, um die Änderung zu übernehmen.
quelle
-Dfile.encoding=UTF-8
zu den Argumenten hinzugefügt habeSie können dies beheben, indem Sie den groovigen Befehl verwenden, der in Valls Antwort angegeben ist.
Der Effekt bleibt bestehen, bis Jenkins neu startet und Sie ihn anschließend erneut ausführen müssen.
Eine Lösung zur Lösung dieses Problems besteht darin, einen Job zu konfigurieren, der dies für Sie erledigt, wenn Jenkins gestartet wird.
Sie können dies mit dem Startup Trigger Plugin tun .
Nachdem Sie es installiert haben, erstellen Sie einen neuen Job und Sie haben ein neues Kontrollkästchen im Abschnitt Build Triggers , das Sie aktivieren müssen.
Fügen Sie dann mit dem folgenden Befehl einen Schritt zum Erstellen eines System-Groovy-Skripts hinzu:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Speichern und alles sollte funktionieren.
quelle
Für die Ubuntu 14-Version waren spezielle Plugins hilfreich:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - Zum Starten des Jobs beim Start von Jenkins
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - Zum Ausführen des System Groovy-Skripts
Und ich habe einen Job gemacht, der beim Neustart von Jenkins beginnt und Parameter festlegt.
Und System Groovy Skript hinzugefügt, um Parameter festzulegen. System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src 'self';")
quelle
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 *")
Gehe zu
und geben Sie den folgenden Befehl ein:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
Drücken Sie dann Ausführen. Wenn Sie die Ausgabe als 'Ergebnis' erhalten, führen Sie den Build erneut aus und überprüfen Sie das HTML-Berichtsformat
quelle
Zum dauerhaften Festlegen erstellen Sie eine Groovy-Skriptdatei $ JENKINS_HOME / init.groovy oder eine beliebige .groovy- Datei im Verzeichnis $ JENKINS_HOME / init.groovy.d / mit folgendem Inhalt:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src 'self'; img-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline';")
systemctl jenkins neu starten
https://wiki.jenkins.io/display/JENKINS/Post-initialization+script
quelle
Öffnen Sie die Datei jenkins.xml und kopieren Sie die Argumente wie folgt. es wird dauerhaft behoben. Sobald dies erledigt ist, starten Sie Ihren Computer neu.
<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
quelle
Unter CentOS ist die folgende Lösung (die in Kommentaren einer anderen Antwort vorgeschlagen wurde) die einzige, die für mich funktioniert hat:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
Mein besonderes Problem war das Fehlen von Bildern / CSS in Serenity BDD-Berichten. Nachdem diese Schritte ausgeführt wurden, wurden in meinen Serenity-Berichten alle Bilder / CSS ordnungsgemäß gerendert, einschließlich Berichten aus Builds, die vor dieser Änderung ausgeführt wurden. Diese Lösung funktioniert auch für alle veröffentlichten HTML-basierten Berichte.
quelle
Es ist zu spät, um zu antworten, aber gedacht, um zu teilen.
Ich hatte Probleme mit Jenkins, das auf Tomcat bereitgestellt wurde, habe versucht, ein Skript auszuführen. Es hilft, geht aber verloren, wenn Tomcat neu gestartet wird.
Die dauerhafte Korrektur wurde vorgenommen, indem die Eigenschaft in catalogina.properties in tomcat festgelegt wurde.
Eigenschaftendatei: tomcat_installation_dir / conf / catalogina.properties Kopieren Sie einfach die folgende Zeile und fügen Sie sie zuletzt in Catalina.properties ein (Sie können sie überall festlegen, um die vorhandenen Eigenschaften nicht zu beeinträchtigen).
-Dhudson.model.DirectoryBrowserSupport.CSP = ""
quelle
Ich hatte die gleichen Probleme, nachdem ich meinen Jenkins HTTPS hinzugefügt hatte. Wenn Sie das gleiche Problem haben, ist die Lösung einfach: Stellen Sie Ihre Jenkins-URL so ein, dass das HTTPS-Protokoll anstelle von HTTP verwendet wird. Es kann über Jenkins Konfiguration konfiguriert werden -> Jenkins URL
quelle
Um die Systemeigenschaft bei Verwendung von Jenkins-X dauerhaft festzulegen , erstellen Sie die Datei
myvalues.yaml
im aktuellen Verzeichnis mit folgendem Inhalt:jenkins: Master: JavaOpts: > -Dhudson.model.DirectoryBrowserSupport.CSP=
Starten Sie dann die jenkins-x-Plattform neu. Dies kann durch ein Upgrade erfolgen:
$ jx upgrade platform --always-upgrade # Presumably jx.exe is used if on Windows (not tested)
Um zu vermeiden, dass die Plattform tatsächlich aktualisiert wird, aktualisieren Sie sie einfach zwangsweise auf dieselbe Version:
$ version=$(jx version --no-version-check\ | grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //') $ jx upgrade platform --version ${version} --always-upgrade
quelle
Für diejenigen, die das
asciidoctor-maven-plugin
Plugin verwenden, um ein HTML-Dokument aus der asciidoc-Datei zu erstellen und es weiter in Jenkins zu veröffentlichen, aktualisieren Sie die Plugin-Konfiguration und fügen Sie das folgendelinkcss
Attribut hinzu:<configuration> <attributes> <linkcss>true</linkcss> </attributes> <backend>html5</backend> <outputDirectory>${project.build.directory}/generated-resources</outputDirectory> </configuration>
quelle
Unter Debian / Ubuntu in Eignungsinstallationen :
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
auf dieJAVA_ARGS
( zum BeispielJAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
Das hat mir gereicht, aber die vollständige Liste der Parameter finden Sie in dieser Antwort .
quelle