Tenho um problema estranho com o plugin Jenkins HTML Publisher, em que todo o CSS sofisticado que adicionei ao relatório é removido quando visualizado no Jenkins. Se eu baixar o relatório para o local, poderei ver a formatação CSS. Existe uma configuração no Jenkins que permite que o CSS seja visualizado?
Minhas configurações de editor HTML no Jenkins:
Minha página de relatório quando exibida no Jenkins:
Minha página de relatório quando exibida em Local:
html
css
jenkins
jenkins-plugins
Vall
fonte
fonte
Respostas:
Descobri o problema. Compartilhando aqui para outros usuários.
CSS é eliminado devido à Política de Segurança de Conteúdo do Jenkins. ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy )
A regra padrão é definida para:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
Este conjunto de regras resulta no seguinte:
Para relaxar esta regra, vá para
clique em Console de script à esquerda e digite o seguinte comando:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
e pressione Executar. Se você vir a saída como 'Resultado:' abaixo do cabeçalho "Resultado", a proteção está desativada. Execute novamente sua construção e você verá que os novos arquivos HTML arquivados terão o CSS ativado.
fonte
Em CentOs , para habilitar imagens em relatório 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:;\""
Isso funcionará mesmo depois de reiniciar o servidor jenkins.
Diretriz
Valor da Fonte
Consulte mais sobre a política de segurança de conteúdo aqui
fonte
<object type="image/svg+xml" data="imgs/lifecycle-diagram.svg"><span class="alt">lifecycleDiagram</span></object>
(resultado da documentação interativa asciidoctor spring-rest para diagrama plantuml embutido), você precisaria definir object-src para self. Aviso escapando: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
com a variávelJAVA_ARGS
Vá para “Gerenciar Jenkins” -> “Console de script” e execute o comando abaixo:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
fonte
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
(A solução a seguir é para Windows.)
Uma correção permanente é mudar uma linha em
[Jenkins directory]\jenkins.xml
(para mim é emC:\Jenkins\jenkins.xml
)<executable>java.exe</executable> <arguments>[arguments are here]</arguments>
Adicione o seguinte argumento à lista de argumentos separados por espaços em branco:
Em seguida, reinicie o serviço Jenkins para pegar a mudança.
fonte
-Dfile.encoding=UTF-8
aos argumentosVocê pode corrigir isso usando o comando groovy conforme especificado na resposta de Vall .
O efeito permanece até que o Jenkins seja reiniciado e, depois, você terá que fazer isso novamente.
Uma solução para resolver este problema é configurar um trabalho que fará isso para você sempre que o jenkins for inicializado.
Você pode fazer isso usando o plugin Startup Trigger .
Depois de instalá-lo, crie um novo trabalho e você terá uma nova caixa de seleção na seção Build Triggers que deverá ser verificada.
Em seguida, adicione uma etapa de compilação Execute system Groovy script com o comando:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
Salve e tudo deve funcionar.
fonte
Para a versão Ubuntu 14, os plug-ins especiais foram úteis:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - para iniciar o trabalho na inicialização do jenkins
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - para executar o script System Groovy
E eu fiz um trabalho, que começa no Jenkins restart e define os parâmetros.
E adicionado script do sistema Groovy para definir parâmetros. System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src 'self';")
fonte
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 *")
Vamos para
e digite o seguinte comando:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
em seguida, pressione Executar. se você obtiver a saída como 'Resultado', execute novamente a verificação do formato do relatório HTML
fonte
Para configurar permanentemente, crie um arquivo de script Groovy $ JENKINS_HOME / init.groovy ou qualquer arquivo .groovy no diretório $ JENKINS_HOME / init.groovy.d / com o seguinte conteúdo:
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
fonte
Abra o arquivo jenkins.xml e copie os argumentos conforme abaixo. ele será corrigido permanentemente. Assim que terminar, reinicie sua máquina.
<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
fonte
No CentOS , a solução abaixo (que foi sugerida nos comentários de outra resposta) é a única que funcionou para mim:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
Meu problema específico era a falta de imagens / css nos relatórios do Serenity BDD. Depois de executar essas etapas, meus relatórios do Serenity tiveram todas as imagens / css renderizadas corretamente, incluindo relatórios de compilações que foram executadas antes dessa mudança. Esta solução também funcionará para qualquer relatório baseado em html publicado.
fonte
É tarde demais para responder, mas pensei em compartilhar.
Eu estava lutando com o Jenkins implantado no Tomcat, tentei executar o script, isso ajuda, mas vai embora se o tomcat for reiniciado.
Fez a correção permanente definindo a propriedade em catalina.properties no tomcat.
Arquivo de propriedades: tomcat_installation_dir / conf / catalina.properties Basta copiar e colar a linha abaixo em catalina.properties no último (você pode defini-lo em qualquer lugar apenas para não mexer com as propriedades existentes)
-Dhudson.model.DirectoryBrowserSupport.CSP = ""
fonte
Tive os mesmos problemas depois de adicionar HTTPS ao meu Jenkins. Caso você esteja tendo o mesmo problema, a solução é fácil - defina seu url do Jenkins para usar o protocolo HTTPS em vez de HTTP. Pode ser configurado via configuração jenkins -> url jenkins
fonte
Para definir a propriedade do sistema permanentemente, se estiver usando Jenkins-X , crie o arquivo
myvalues.yaml
no diretório atual, com o seguinte conteúdo:jenkins: Master: JavaOpts: > -Dhudson.model.DirectoryBrowserSupport.CSP=
Em seguida, reinicie a plataforma jenkins-x, o que pode ser feito atualizando-a:
$ jx upgrade platform --always-upgrade # Presumably jx.exe is used if on Windows (not tested)
Para evitar realmente atualizar a plataforma, basta atualizá-la à força para a mesma versão:
$ version=$(jx version --no-version-check\ | grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //') $ jx upgrade platform --version ${version} --always-upgrade
fonte
Para aqueles que estão usando o
asciidoctor-maven-plugin
plug-in para produzir um documento HTML a partir do arquivo asciidoc para publicá-lo posteriormente no Jenkins, atualize a configuração do plug-in e adicione olinkcss
atributo:<configuration> <attributes> <linkcss>true</linkcss> </attributes> <backend>html5</backend> <outputDirectory>${project.build.directory}/generated-resources</outputDirectory> </configuration>
fonte
No Debian / Ubuntu , nas instalações do aptitude :
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
aoJAVA_ARGS
(por exemploJAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
Isso foi o suficiente para mim, mas para a lista completa de parâmetros veja esta resposta .
fonte