Configurar servidor Hudson

De UltramaxWiki
Ir para navegação Ir para pesquisar
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Configuração do Hudson:

Esse documento mostra a configuração básica usada para fazer a construção do projeto Gestão Escolar - Core usando o Hudson web no windows.

Ambiente

No teste foi usado o jar do Hudson diretamente via comando "java -jar hudson", segundo o documento oficial é possível executar de outras formas, tais como, serviço do windows, dentro de um container web, como um serviço linux (que tem mais funções que o windows). Mais detalhes em http://wiki.eclipse.org/Hudson-ci/Use_Hudson

Configuração:   

O Hudson é baseado em plugins e para poder usar o Git é preciso baixar o Git plugin (http://wiki.hudson-ci.org/display/HUDSON/Git+Plugin)   

Basicamente é preciso configurar o ambiente de desenvolvimento, os usuários que terão acesso e a forma de segurança que será empregada, para configurar o ambiente entre no Hudson e vá em:

     - Gerenciar Hudson

     - Configurar Sistema

Nessa tela é possível configurar:

-as JDKs

-o ant (uma ou mais versões)

-qual SCM será usado

-o usuário padrão do Git no nosso caso

-o maven

- Executar comandos shells defaults

- Além de configurar o servidor de e-mail usado para as notificações

- Além de da configuração básica do Hudson, como o diretório home onde tudo será salvo, o mensagens de boas vindas, número de cores usados no processamento, etc            

Configuração de segurança:

Existe uma gama de configurações de segurança possíveis através da tela Configure Security que fica no "Gerenciar hudson". Nos testes realizados fiz utilizando o padrão matriz de segurança

Configuração do projeto:

Existe uma tela para configurar o Hudson para fazer as chamadas a tarefas do ant/mavem, construir o projeto e o que fazer depois da construção.

Ela também server para configurar em que momento o projeto deve ser baixado/construido.

Para fazer o pull/clone do repositório git é preciso gerar uma chave ssh com a ferramenta bash que vem junto com o git para windows, criar a chave baseada no e-mail do usuário que foi definido para o projeto (nessa mesma tela) e copiar a chave publica dentro do diretorio hudson_home/users/nome_usuario (detalhes de como gerar a chave em https://help.github.com/articles/generating-ssh-keys#platform-windows)

Ambiente do TOMCAT:

No servidor web server foram adicionadas uma pasta no drive D:

- D:\HUDSON_GE (Equivale ao clone do repositório onde o Hudson faz o pull e usa os arquivos para gerar o build e executar os testes)

- D:\HUDSON (Onde fica a configuração geral do Hudson)

Na pasta Hudson existe uma outra chamada java que os arquivos necessários para a execução dos testes e ela pode ser alterada para outro lugar através do arquivo build.properties do gestaoescolar - core.

Exemplo:      

     junit-home=/hudson/java/ (altera o local do jar do junit)

     mysql-home=/hudson/java/ (altera o local do jar do mysql connector)  

Os dois arquivos acima também precisaram ficar na raiz do hudson por serem usados por outras tasks (não descobri ainda onde elas carregam)

hudson.workspace.root=/sistemas/sistprod/hudson/jobs/Gestao Escolar/workspace (Esse último parâmetro define onde será gerado o resultado dos testes, no caso a partir do diretorio Hudson)

Na pasta conf do tomcat deve ser criado um arquivo xml com o nome da aplicação hudson, com isso, é possível definir a variável de ambiente apontando para o diretório Hudson correto

<?xml version="1.0" encoding="UTF-8"?>

<Context docBase="D:\Sistemas\SistProd\HUDSON\hudson.war" privileged="false" allowLinking="true">

  <Environment name="HUDSON_HOME" type="java.lang.String"

value="D:\Sistemas\SistProd\HUDSON" override="false"/>

</Context>     

Integrar o Hudson(git) com o Bucket via SSH:

https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html#SetupSSHforGit-Step4.Createaconfigfile

Referencias:

http://wiki.eclipse.org/Hudson-ci/Use_Hudson

http://wiki.hudson-ci.org/display/HUDSON/Git+Plugin

https://help.github.com/articles/generating-ssh-keys#platform-windows