Search code examples
htmlcssjenkinsjenkins-plugins

Jenkins - HTML Publisher Plugin - No CSS is displayed when report is viewed in Jenkins Server


I have a strange problem with the Jenkins HTML Publisher plugin, wherein all the fancy CSS I have added to the report is stripped out when viewed in Jenkins. If I download the report to local, I am able to see the CSS formatting. Is there a setting in Jenkins which allows CSS to be viewed?

My HTML Publisher Settings in Jenkins:

enter image description here

My Report Page when displayed in Jenkins :

enter image description here

My Report Page when displayed in Local :

enter image description here


Solution

  • Figured out the issue. Sharing it here for other users.

    CSS is stripped out because of the Content Security Policy in Jenkins. (https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy)

    The default rule is set to:

    sandbox; default-src 'none'; img-src 'self'; style-src 'self';
    

    This rule set results in the following:

    • No JavaScript allowed at all
    • No plugins (object/embed) allowed
    • No inline CSS, or CSS from other sites allowed
    • No images from other sites allowed
    • No frames allowed
    • No web fonts allowed
    • No XHR/AJAX allowed, etc.

    To relax this rule, go to

    1. Manage Jenkins->
    2. Manage Nodes->
    3. Click settings(gear icon)->
    4. click Script console on left and type in the following command:

      System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

    and Press Run. If you see the output as 'Result:' below "Result" header then the protection disabled. Re-Run your build and you can see that the new HTML files archived will have the CSS enabled.