Série CI: Integrando Sonar com Jenkins

Olá Pessoal

No post de hoje veremos como integrar o sonar com o jenkins.  Para quem não sabe, o sonar é uma ferramenta PMD para análise do código. Em outras palavras, o Sonar olha e diz: “o nome dessa variável não está legal”, “ei tem código duplicado nessa classe”, etc. Vamos ver  como integrar essa ferramenta com o build, pois logo após fim do build o sonar roda e faz o trabalho dele.

Lets go..

Primeiro Passo

Baixe o sonar http://www.sonarqube.org/downloads/ . Para o exemplo estou usando o sonar 3.4.1, pois é o que tenho aqui . E a versão SonarQube.

Segundo Passo

Vou considerar que você já vem acompanhando a série Continous Integrations com Jenkins aqui no blog, então você já tem o Jenkins e um projeto configurado.

Terceiro Passo

Após ter baixado o sonar, descompacte o .zip e via prompt de comando vá até

sonar-3.4.1\bin

Em seguida entre na pasta referente ao sistema operacional que está usando e execute o arquivo .bat ou .sh.

 

sonarrunninglocal

 

sonarrunning

Quarto Passo

Inicie o Jenkins

Quinto Passo

Instale o plugin do sonar no Jenkins sem reiniciar aplicação. 

 

sonarjenkinsplugin

Sexto Passo

Após  instalação vá em Jenkins >> Manage Jenkins >> Configure Systems . Você vai ver que o sonar foi adicionado. Clique em advanced e deixe conforme a  seguir:

 

sonarconfigjenkins

Apenas informamos a URL onde o Sonar está sendo executado, o resto deixamos em branco porque estamos rodando local e com o banco embedded.  Para fazer com um banco real, consulte a documentação do sonar.

Clique em save.

Sétimo Passo

Vá em configure do seu  projeto no Jenkins

sonarprojectconfigure

E em post build actions clique em add e escolha sonar:

Ao clicar em Add post-build action escolha a opção “Build Pipeline Plugin >> Manually Execute Downstream Project”

 

sonarbuildpost

E deixe assim:

 

sonarjob

Save.

Oitavo Passo

Build Now o projeto e aguarde:

 

sonarbulding

 

sonarbuilddone

 

sonarappreaderweb

Pronto! Simples, não?

Vou ficando por aqui. Espero que tenham gostado.

See ya!!

Abraços.

Série CI:Resolvendo problemas de Unicode maven no Jenkins

Olá Pessoal,

O post de hoje é bem rápido, mas muito recorrente quando estamos montando um ambiente continuo. No meu caso tive problemas de Unicode quando o jenkins executou mvn test. Vamos ver como resolver.

Lets go… 

O problema

A questão é que os testes vão falhar. Se você tem algum teste que faz validação que envolve acento, por exemplo  você espera “João”  e devido ao problema de Unicode veio sem o acento e outro caractere. Como resolver?

 

readerwebbuildfailuretestes

A solução

É bem simples, precisamos apenas no nosso pom.xml informar qual Unicode vamos usar, nesse caso UTF-8. Daí precisamos configurar as propriedades assim:

<properties>

<maven.test.failure.ignore>false</maven.test.failure.ignore> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

   <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

</properties>

 E agora podemos executar um mvn clean. E em seguida mandar o Jenkins compilar e o resultado será:

readerwebbuildsucessunicode

Pronto, problema resolvido. Simples não?

Abraços, see ya!!!