Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sonar #16

Open
leonardofl opened this issue Feb 5, 2015 · 24 comments
Open

sonar #16

leonardofl opened this issue Feb 5, 2015 · 24 comments
Labels

Comments

@leonardofl
Copy link
Member

Parece que sonar não fica de pé, o que deveria ser feito pela receita radarqueube.

Pau que dá na receita radar::sonar:

sudo: unable to resolve host ip-172-30-0-76
ERROR: Sonar server 'http://localhost:9300' can not be reached
ERROR: Error during Sonar runner execution
ERROR: java.net.ConnectException: Connection refused
ERROR: Caused by: Connection refused
@leonardofl leonardofl added the bug label Feb 5, 2015
@leonardofl
Copy link
Member Author

Olhando na receita default do cookbook sonarqube [1], vi que era preciso criar primeiro o banco de dados do sonar e daí informar, por meio dos atributos do nó, as credenciais de acesso à receita sonarqube. Ou seja, não adiantava executar sonarqube::default antes de radar::sonar [2].

Daí eu removi o sonarqube::default do bootstrap e o coloquei como um passo no meio da receita radar::sonar, logo após a configuração do banco sonar (no postgresql). Daí, vendo os atributos de nó usados em sonarqube::default, tive que setar mais alguns desses atributos no node.json [3].

Agora o problema, estranho, é que ao se executar a receita sonarqube::default, temos o seguinte erro:

ERROR: No resource or method named `sonarqube_jdbc' for `Chef::Recipe "default"'

que acontece na linha

sonarqube_jdbc "/opt/sonarqube-#{sonarqube_version}/conf/sonar.properties" do

da receita sonarqube::default.

[1] https://github.com/radar-parlamentar/implantacao/blob/master/cookbooks/sonarqube/recipes/default.rb
[2] https://github.com/radar-parlamentar/implantacao/blob/master/cookbooks/radar/recipes/sonar.rb
[3] https://github.com/radar-parlamentar/implantacao/blob/master/node.json

@leonardofl
Copy link
Member Author

Bom, já q esse último problema parece um problema estranho do cookbook, uma boa saída pode ser tentar esse outro cookbook aqui pra instalar o sonar: https://github.com/ctrabold/chef-sonar

@leonardofl
Copy link
Member Author

Opa, o último erro aconteceu só pq faltou declarar a dependência do cookbook sonarqube no cookbook radar. Fiz isso e consegui executar a receita radar::sonar sem erros, mas ainda não consegui acessar o sonar =S

@leonardofl
Copy link
Member Author

Executei de novo e consegui acessar o Sonar via navegador!!!
Ao se executar o sonar-runner.sh dava dois erros:

  1. pq o sonar estava sendo executado com o sh em vez do bash, aí o comando source não funcionava;
  2. erro de permissão ao acessar o log no diretório repo/radar_parlamentar.
    Surpreendentemente, ao se tentar executar os testes de unidade (source unit_tests.sh") o mesmo erro (2) apareceu! Ou seja, esse erro não tem a ver com o sonar, mas sim com o fato de que a configuração atual do ambiente não possibilita a execução dos testes via linha de comando... Possível explicação: quando o jenkins executou os testes (com sudo) acabou criando o log como pertencente ao root, e por isso na linha de comando acaba não funcionando o log).

@leonardofl
Copy link
Member Author

humm... o jenkins não executa o build no repo que o sonar usa... então não foi culpa do jenkins q o log ficou pertencente ao root. Além disso, arquivos em exportadores/dados tb ficaram pertencente ao root!

@leonardofl
Copy link
Member Author

Com as alterações de 352fadb a coisa tá funcionando...
MAS o sonar debora bastante pra subir... aí dá timeout na 1a execução da receita.
Mas aí é só executar de novo q dá certo.
O bom seria achar um jeito de esperar o sonar subir...

@alfakini
Copy link
Member

@leonardofl que tal colocar isto para rodar em uma ferramenta externa? O CodeClimate está com beta aberta para Python https://codeclimate.com/

@leonardofl
Copy link
Member Author

Parece uma boa!
Assim dá pra simplificar bastante a parte de implantação e evitar umas dores de cabeça ali e aqui...
Vc consegue por o radar lá no code climate, por favor, pra gente ver como fica?

Por outro lado seria legal explorar o Sonar, q é bastante conhecido e usado por aí, além de ser open source... mas acho q exige um esforço maior, neh.

Outra plataforma de métricas é a Mezuro, do Paulo Meiirelles. Mas eles ainda tão trabalhando para o suporte a Python. Talvez a gente possa ir pro Climate e no futuro migrar pro Mezuro, hehe.

@leonardofl
Copy link
Member Author

Eh o workaround q eu tentei fazer pra contornar o problema da instalação do sonar não funcionou muito bem.. deu um outro problema =T

@leonardofl
Copy link
Member Author

Ih, parece que o codeclimate não suporta python : /

@msfernandes
Copy link
Contributor

Leonardo...
O code climate suporta python, o problema é que as métricas são bem simples
quando comparadas ao que o sonar tem. O que pode ser feito, dependendo da
versão do Django (ainda é a 1.4.5?), é usar uns plugins (do Django e do
Jenkins) que fornecem analise estática no próprio Jenkins...

http://ricardoduarte.net/posts/como-configurar-um-projeto-django-no-jenkins.html
Em 09/05/2015 21:28, "Leonardo Leite" [email protected] escreveu:

Ih, parece que o codeclimate não suporta python : /


Reply to this email directly or view it on GitHub
#16 (comment)
.

@leonardofl
Copy link
Member Author

Então, o code cliamte tem algum suporte a Python, mas não pra medir a cobertura de testes, o que considero ser o principal.

Quanto a usar o próprio Jenkins pra fazer a análise, gostei da ideia!

@leonardofl
Copy link
Member Author

A partir de agora, acho q vou adotar a seguinte estratégia... tirar a parte do sonar do projeto, tentar por tudo isso pra valer em produção, e depois q estiver funcionando, acrescentar a parte da análise estática de código via Jenkins.

@diraol
Copy link
Member

diraol commented May 9, 2015 via email

@msfernandes
Copy link
Contributor

Bom... Pra cobertura rola o coveralls!
Em 10/05/2015 00:19, "Leonardo Leite" [email protected] escreveu:

Então, o code cliamte tem algum suporte a Python, mas não pra medir a
cobertura de testes, o que considero ser o principal.

Quanto a usar o próprio Jenkins pra fazer a análise, gostei da ideia!


Reply to this email directly or view it on GitHub
#16 (comment)
.

@leonardofl
Copy link
Member Author

Vou tentar aqui : )

@diraol
Copy link
Member

diraol commented May 9, 2015 via email

@leonardofl
Copy link
Member Author

Vixe, loguei lá, mas o radar não apareceu na minha lista de repos :S

@diraol
Copy link
Member

diraol commented May 9, 2015 via email

@diraol
Copy link
Member

diraol commented May 9, 2015 via email

@leonardofl
Copy link
Member Author

Legal, acho que consegui! :D
Mas parece que ele considera os próprios testes no cálculo da cobertura... o ideal seria remover o código dos testes da contagem de linhas cobertas pela execução dos testes.

@leonardofl
Copy link
Member Author

Ops, funcionou na 1a tentativa na qual eu rodei apenas os testes da app analises.

Mas quando rodei de novo com todos os testes de unidade, o coveralls no after_success do travis deu erro, e daí o coveralls não foi atualizado : (

O erro que deu pode ser visto em https://travis-ci.org/radar-parlamentar/radar/builds/62319120, e é:

4.07s
$ coveralls
Submitting coverage to coveralls.io...
ERROR: While preparing JSON received exception: 'ascii' codec can't decode byte 0xc3 in position 443: ordinal not in range(128)
Traceback (most recent call last):
  File "/home/travis/virtualenv/python2.7.9/bin/coveralls", line 9, in <module>
    load_entry_point('coveralls==0.5', 'console_scripts', 'coveralls')()
  File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/coveralls/cli.py", line 60, in main
    result = coverallz.wear()
  File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/coveralls/api.py", line 78, in wear
    json_string = self.create_report()
  File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/coveralls/api.py", line 101, in create_report
    self.debug_bad_encoding(data)
UnboundLocalError: local variable 'data' referenced before assignment

@diraol
Copy link
Member

diraol commented May 12, 2015 via email

@diraol
Copy link
Member

diraol commented May 13, 2015 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants