Configurar servidor Hudson

De UltramaxWiki

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