Configurar servidor Hudson
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