Mam dziwny problem z wtyczką Jenkins HTML Publisher, w której wszystkie fantazyjne CSS, które dodałem do raportu, są usuwane podczas przeglądania w Jenkins. Jeśli pobiorę raport do lokalnego, mogę zobaczyć formatowanie CSS. Czy w Jenkins jest ustawienie umożliwiające przeglądanie CSS?
Moje ustawienia wydawcy HTML w Jenkins:
Moja strona raportu, gdy jest wyświetlana w Jenkins:
Moja strona raportu, gdy jest wyświetlana w lokalnym:
html
css
jenkins
jenkins-plugins
Vall
źródło
źródło
Odpowiedzi:
Rozwiązałem problem. Udostępnianie go tutaj innym użytkownikom.
CSS jest usuwany z powodu polityki bezpieczeństwa treści w Jenkins. ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy )
Domyślna reguła jest ustawiona na:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
Efektem tego zestawu reguł są:
Aby złagodzić tę zasadę, przejdź do
kliknij konsolę skryptów po lewej stronie i wpisz następujące polecenie:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
i naciśnij Uruchom. Jeśli zobaczysz wynik jako „Wynik:” pod nagłówkiem „Wynik”, oznacza to, że ochrona jest wyłączona. Uruchom ponownie kompilację i zobaczysz, że nowe zarchiwizowane pliki HTML będą miały włączony CSS.
źródło
W CentOs , aby włączyć obrazy w raporcie 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:;\""
To zadziała nawet po ponownym uruchomieniu serwera Jenkinsa.
Dyrektywa
Wartość źródłowa
Więcej informacji o polityce bezpieczeństwa treści znajdziesz tutaj
źródło
<object type="image/svg+xml" data="imgs/lifecycle-diagram.svg"><span class="alt">lifecycleDiagram</span></object>
(wynik interaktywnej dokumentacji sprężyny asciidoctor dla osadzonego diagramu plantuml), musisz ustawić obiekt-src na self. Powiadomienie uciekające: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
ze zmiennąJAVA_ARGS
Idź do „Manage Jenkins” -> „Script console” i uruchom poniższe polecenie:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
źródło
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
(Poniższe rozwiązanie dotyczy systemu Windows).
Stałym rozwiązaniem jest zmiana linii
[Jenkins directory]\jenkins.xml
(dla mnie to jestC:\Jenkins\jenkins.xml
)<executable>java.exe</executable> <arguments>[arguments are here]</arguments>
Dodaj następujący argument do listy argumentów oddzielonych spacjami:
Następnie uruchom ponownie usługę Jenkins, aby wprowadzić zmianę.
źródło
-Dfile.encoding=UTF-8
do argumentówMożesz to naprawić, używając groovy polecenia, jak określono w Vall .
Efekt utrzymuje się do ponownego uruchomienia Jenkinsa, a następnie musisz to zrobić ponownie.
Rozwiązaniem tego problemu jest skonfigurowanie zadania, które wykona to za Ciebie przy każdym uruchomieniu Jenkinsa.
Możesz to zrobić za pomocą wtyczki Startup Trigger .
Po zainstalowaniu utwórz nowe zadanie, a pod wyzwalaczami kompilacji pojawi się nowe pole wyboru sekcji , które będziesz musiał sprawdzić.
Następnie dodaj krok kompilacji skryptu Uruchom system Groovy za pomocą polecenia:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Oszczędzaj i wszystko powinno działać.
źródło
W przypadku wersji Ubuntu 14 pomocne okazały się specjalne wtyczki:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - Aby rozpocząć pracę przy uruchomieniu jenkinsa
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - Aby uruchomić skrypt System Groovy
I wykonałem zadanie, które zaczyna się od restartu Jenkinsa i ustawia parametr.
Dodano systemowy skrypt Groovy do ustawiania parametrów. System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src 'self';")
źródło
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 *")
Iść do
i wpisz następujące polecenie:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
następnie naciśnij Uruchom. jeśli otrzymasz wynik jako „Wynik”, uruchom ponownie kompilację, sprawdź format raportu HTML
źródło
Aby ustawić na stałe, utwórz plik skryptowy Groovy $ JENKINS_HOME / init.groovy lub dowolny plik .groovy w katalogu $ JENKINS_HOME / init.groovy.d / z następującą zawartością:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src 'self'; img-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline';")
systemctl zrestartuj jenkins
https://wiki.jenkins.io/display/JENKINS/Post-initialization+script
źródło
Otwórz plik jenkins.xml i skopiuj argumenty jak poniżej. naprawi się na stałe. Po zakończeniu uruchom ponownie komputer.
<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
źródło
Na CentOS poniższe rozwiązanie (które zostało zasugerowane w komentarzach do innej odpowiedzi) jest jedynym, które zadziałało dla mnie:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
Moim szczególnym problemem był brak obrazów / CSS w raportach Serenity BDD. Po wykonaniu tych czynności moje raporty Serenity miały poprawnie renderowane wszystkie obrazy / CSS, w tym raporty z kompilacji, które zostały wykonane przed tą zmianą. To rozwiązanie będzie również działać w przypadku każdego opublikowanego raportu w formacie HTML.
źródło
Za późno na odpowiedź, ale pomyślałem, żeby się podzielić.
Walczyłem z Jenkinsem zainstalowanym na Tomcat, próbowałem wykonać skrypt, pomaga, ale znika, jeśli tomcat zostanie ponownie uruchomiony.
Naprawiono na stałe, ustawiając właściwość w Catalina.properties w tomcat.
Plik właściwości: tomcat_installation_dir / conf / catalina.properties Po prostu skopiuj, wklej na koniec poniższy wiersz w catalina.properties (możesz ustawić go w dowolnym miejscu, aby nie zadzierać z istniejącymi właściwościami)
-Dhudson.model.DirectoryBrowserSupport.CSP = ""
źródło
Miałem te same problemy po dodaniu HTTPS do moich jenkinsów. Jeśli masz ten sam problem, rozwiązanie jest łatwe - ustaw adres URL Jenkins, aby używał protokołu HTTPS zamiast HTTP. Można go skonfigurować poprzez konfigurację jenkins -> jenkins url
źródło
Aby ustawić właściwość systemową na stałe, jeśli używasz Jenkins-X , utwórz plik
myvalues.yaml
w bieżącym katalogu z następującą zawartością:jenkins: Master: JavaOpts: > -Dhudson.model.DirectoryBrowserSupport.CSP=
Następnie uruchom ponownie platformę jenkins-x, co można zrobić, aktualizując ją:
$ jx upgrade platform --always-upgrade # Presumably jx.exe is used if on Windows (not tested)
Aby uniknąć faktycznej aktualizacji platformy, po prostu wymuś aktualizację do tej samej wersji:
$ version=$(jx version --no-version-check\ | grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //') $ jx upgrade platform --version ${version} --always-upgrade
źródło
Dla tych, którzy używają
asciidoctor-maven-plugin
wtyczki do tworzenia dokumentu HTML z pliku asciidoc w celu dalszego publikowania go w Jenkins, zaktualizuj konfigurację wtyczki, dodajlinkcss
atrybut:<configuration> <attributes> <linkcss>true</linkcss> </attributes> <backend>html5</backend> <outputDirectory>${project.build.directory}/generated-resources</outputDirectory> </configuration>
źródło
W systemie Debian / Ubuntu w instalacjach aptitude :
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
doJAVA_ARGS
(np.JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
To mi wystarczyło, ale pełna lista parametrów znajduje się w tej odpowiedzi .
źródło