Saya memiliki masalah aneh dengan plugin Jenkins HTML Publisher, di mana semua CSS mewah yang telah saya tambahkan ke laporan dihilangkan jika dilihat di Jenkins. Jika saya mendownload laporan ke lokal, saya bisa melihat format CSS. Apakah ada pengaturan di Jenkins yang memungkinkan CSS untuk dilihat?
Pengaturan Penerbit HTML Saya di Jenkins:
Halaman Laporan Saya saat ditampilkan di Jenkins:
Halaman Laporan Saya saat ditampilkan di Lokal:
html
css
jenkins
jenkins-plugins
Vall
sumber
sumber
Jawaban:
Mengetahui masalahnya. Berbagi di sini untuk pengguna lain.
CSS dihapus karena Kebijakan Keamanan Konten di Jenkins. ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy )
Aturan default ditetapkan ke:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
Kumpulan aturan ini menghasilkan sebagai berikut:
Untuk melonggarkan aturan ini, buka
klik konsol Script di sebelah kiri dan ketik perintah berikut:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
dan Tekan Jalankan. Jika Anda melihat keluaran sebagai 'Hasil:' di bawah tajuk "Hasil", maka perlindungan dinonaktifkan. Jalankan ulang build Anda dan Anda dapat melihat bahwa file HTML baru yang diarsipkan akan mengaktifkan CSS.
sumber
Di CentOs , untuk mengaktifkan gambar dalam laporan 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:;\""
Ini akan bekerja bahkan setelah memulai ulang server jenkins.
Pengarahan
Nilai Sumber
Silakan lihat lebih lanjut tentang kebijakan keamanan konten di sini
sumber
<object type="image/svg+xml" data="imgs/lifecycle-diagram.svg"><span class="alt">lifecycleDiagram</span></object>
(hasil dokumentasi pegas asciidoctor interaktif untuk diagram plantuml tertanam), Anda perlu mengatur objek-src ke diri sendiri. Pemberitahuan melarikan diri: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
variabelJAVA_ARGS
Buka "Kelola Jenkins" -> "Konsol skrip" dan jalankan perintah di bawah ini:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
sumber
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
(Solusi berikut untuk Windows.)
Perbaikan permanen adalah mengubah garis masuk
[Jenkins directory]\jenkins.xml
(bagi saya itu diC:\Jenkins\jenkins.xml
)<executable>java.exe</executable> <arguments>[arguments are here]</arguments>
Tambahkan argumen berikut ke daftar argumen yang dipisahkan spasi putih:
Kemudian mulai ulang layanan Jenkins untuk mengambil perubahan.
sumber
-Dfile.encoding=UTF-8
argumenAnda dapat memperbaikinya dengan menggunakan perintah groovy seperti yang ditentukan di Vall jawaban .
Efeknya ada sampai Jenkins dimulai ulang dan setelah itu Anda harus melakukannya lagi.
Solusi untuk mengatasi masalah ini adalah dengan mengkonfigurasi pekerjaan yang akan melakukan ini untuk Anda setiap kali jenkins dijalankan.
Anda dapat melakukannya dengan menggunakan plugin Startup Trigger .
Setelah Anda menginstalnya, buat pekerjaan baru dan Anda akan memiliki kotak centang baru di bawah Build Triggers yang harus Anda periksa.
Kemudian tambahkan langkah pembuatan skrip Groovy sistem Eksekusi dengan perintah:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Simpan dan semuanya harus berfungsi.
sumber
Untuk versi Ubuntu 14 yang membantu adalah plugin khusus:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - Untuk memulai pekerjaan di jenkins startup
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - Untuk menjalankan skrip System Groovy
Dan saya berhasil, yang dimulai saat Jenkins memulai ulang dan menyetel parameter.
Dan menambahkan skrip Groovy sistem untuk mengatur parametr. System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src 'self';")
sumber
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 *")
Pergi ke
dan ketik perintah berikut:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
lalu Tekan Jalankan. jika Anda mendapatkan output sebagai 'Hasil', maka jalankan kembali build, periksa format laporan HTML
sumber
Untuk pengaturan secara permanen buat file skrip Groovy $ JENKINS_HOME / init.groovy , atau file .groovy apa pun di direktori $ JENKINS_HOME / init.groovy.d / dengan konten berikut:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src 'self'; img-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline';")
systemctl restart jenkins
https://wiki.jenkins.io/display/JENKINS/Post-initialization+script
sumber
Buka file jenkins.xml dan salin argumen seperti di bawah ini. itu akan diperbaiki secara permanen. Setelah selesai, restart mesin Anda.
<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
sumber
Di CentOS , solusi di bawah ini (yang disarankan dalam komentar jawaban lain) adalah satu-satunya yang berhasil untuk saya:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
Masalah khusus saya adalah kehilangan gambar / css dalam laporan Serenity BDD. Setelah melakukan langkah-langkah ini, laporan Serenity saya memiliki semua gambar / css yang dirender dengan benar, termasuk laporan dari build yang telah dieksekusi sebelum perubahan ini. Solusi ini juga akan berfungsi untuk laporan berbasis html yang dipublikasikan.
sumber
Sudah terlambat untuk menanggapi tetapi berpikir untuk berbagi.
Saya berjuang dengan Jenkins yang diterapkan di Tomcat, mencoba eksekusi skrip, itu membantu tetapi hilang jika tomcat di-boot ulang.
Membuat perbaikan permanen dengan mengatur properti di catalina.properties di tomcat.
File properti: tomcat_installation_dir / conf / catalina.properties Cukup salin dan tempel baris di bawah ini di catalina.properties pada akhirnya (Anda dapat mengaturnya di mana saja agar tidak mengacaukan properti yang ada)
-Dhudson.model.DirectoryBrowserSupport.CSP = ""
sumber
Saya mengalami masalah yang sama setelah menambahkan HTTPS ke jenkins saya. Jika Anda mengalami masalah yang sama, solusinya mudah - setel url Jenkins Anda untuk menggunakan protokol HTTPS, bukan HTTP. Ini dapat dikonfigurasi melalui konfigurasi jenkins -> url jenkins
sumber
Untuk menyetel properti sistem secara permanen jika menggunakan Jenkins-X , buat file
myvalues.yaml
di direktori saat ini, dengan konten berikut:jenkins: Master: JavaOpts: > -Dhudson.model.DirectoryBrowserSupport.CSP=
Kemudian restart platform jenkins-x, yang dapat dilakukan dengan memutakhirkannya:
$ jx upgrade platform --always-upgrade # Presumably jx.exe is used if on Windows (not tested)
Untuk menghindari benar-benar mengupgrade platform, cukup upgrade secara paksa ke versi yang sama:
$ version=$(jx version --no-version-check\ | grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //') $ jx upgrade platform --version ${version} --always-upgrade
sumber
Bagi mereka yang menggunakan
asciidoctor-maven-plugin
plugin untuk menghasilkan dokumen HTML dari file asciidoc untuk mempublikasikannya lebih lanjut ke Jenkins, perbarui konfigurasi plugin, tambahkanlinkcss
atribut:<configuration> <attributes> <linkcss>true</linkcss> </attributes> <backend>html5</backend> <outputDirectory>${project.build.directory}/generated-resources</outputDirectory> </configuration>
sumber
Di Debian / Ubuntu , dalam penginstalan aptitude :
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
keJAVA_ARGS
(mis.JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
Ini sudah cukup bagi saya, tetapi untuk daftar lengkap parameter, lihat jawaban ini .
sumber