SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
08.02.2025

Configurando o Publicador HTML no Jenkins para Exibir CSS

Resposta Rápida

Para exibir corretamente o CSS em relatórios HTML no Jenkins, você precisará modificar a Política de Segurança de Conteúdo (CSP). Insira o seguinte comando no console de script do Jenkins:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "style-src 'self' 'unsafe-inline';")

Essa abordagem permite o uso de estilos inline e arquivos CSS do seu domínio, restaurando a aparência familiar dos seus relatórios sem comprometer o controle da sua CSP.

Analisando a CSP e o CSS do Jenkins

Entendendo o Problema da CSP

O Jenkins possui uma política CSP rígida: por padrão, ele bloqueia todos os elementos potencialmente inseguros, incluindo JavaScript e CSS, para evitar ameaças potenciais.

Impacto da CSP nos Relatórios do Jenkins

Como resultado dessa política de segurança estrita, os relatórios do Jenkins perdem sua formatação—os estilos CSS e JavaScript nos documentos HTML não são executados, fazendo com que os documentos apareçam simplificados e sem vida.

Aplicando uma Solução Usando CSP

Para aplicar a correção, siga estes passos:

  • Navegue até Gerenciar Jenkins.
  • Abra o Console de Script.
  • Cole e execute o script da seção "Resposta Rápida".
  • Para usuários do IntelliJ IDEA, você não precisará reiniciar o servidor como um bônus.

Segurança em Primeiro Lugar

Definir a CSP como zero não é recomendado, pois esse passo pode ser comparado a deixar sua porta da frente escancarada. Use diretivas específicas como 'self' e 'unsafe-inline' para equilibrar segurança e funcionalidade.

Visualização

Imagine o seguinte cenário: você tem uma casa:

Jenkins 🏠: há paredes e um teto, mas sem expressividade, sem estilo!

Então você ativa a CSP:

💡 Política de Segurança de Conteúdo: Vamos ativar o CSS! 🎨

E de repente, sua casa ganha vida:

Jenkins 🏠, revitalizado pelo CSS: Paredes vibrantes, um jardim magnífico! 🎨🌷

Dominando Cenários Complexos

Automatizando a Correção da CSP

Adicione um script Groovy ao seu pipeline ou ao processo de inicialização do Jenkins, para que a CSP seja configurada automaticamente, livrando você da necessidade de lembrar de definir isso.

Usando o Plugin de Gatilho de Inicialização

O plugin de Gatilho de Inicialização simplificará a configuração da CSP sempre que o Jenkins iniciar, criando um conforto similar ao de uma cafeteira de manhã.

Trabalhando com Relatórios em Diversos Ambientes

Algumas configurações, particularmente Serenity BDD ou quando o Jenkins é executado em CentOS, podem enfrentar problemas de acesso a recursos devido às políticas do SELinux. Certifique-se de que a segurança do seu sistema seja compatível com as configurações do Jenkins.

Monitorando Após as Alterações

Após fazer alterações na CSP, fique atento ao estado do seu sistema e ao Plugin de Publicação HTML para verificar se a funcionalidade de relatórios permanece inalterada e se os resultados atendem às expectativas.

Verificando a Precisão dos Relatórios

Após todas as operações, certifique-se de revisar os relatórios para confirmar que estão coloridos e contêm exatamente as informações esperadas, enquanto os estilos CSS estão corretamente aplicados aos documentos.

Recursos Úteis

  1. HTML Publisher | Plugin do Jenkins — Guia sobre como usar o plugin HTML Publisher do Jenkins.
  2. Configurando a Política de Segurança de Conteúdo — Guia detalhado sobre como configurar a CSP no Jenkins.
  3. Tipos MIME (tipos de mídia IANA) - HTTP | MDN — Cobertura abrangente de tipos MIME.
  4. Como Incluir CSS — Guia do W3Schools sobre como adicionar CSS corretamente para evitar possíveis erros.
  5. GitHub - jenkinsci/htmlpublisher-plugin: Plugin htmlpublisher do Jenkins — Código fonte do plugin que cria relatórios HTML no Jenkins.
  6. CSP Evaluator — Uma ferramenta do Google para avaliar e aprimorar estratégias de CSP.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!