sexta-feira, 11 de março de 2011

Jenkins - Configuração de uma tarefa


Neste post, vamos ver como configurar uma tarefa simples no Jenkins. Para este exemplo, temos:
  • SVN como repositório de código
  • Maven na versão 2.2.1
  • Projeto web construído com maven-archetype-webapp
  • Notificação via email
  • Build periódico
  • Servidor Tomcat versão 6.0.32

Vamos, então, explorar estes tópicos:

Configuração do SVN
Basicamente, você deve inserir a URL do repositório na seção 'Gerenciamento de Código Fonte':
Na versão do Jenkins que usei para este post, precisei instalar Subversion Plugin para poder configurar o SVN na tarefa. Isto é feito no Plugin Manager do Jenkins.
Programação de build
Na seção 'Disparadores de Construção', marque as opções de consulta periódica ao SVN e de build do projeto. E defina a periodicidade da tarefa de acordo com a sintaxe do cron:
Configuração do build pelo Maven
Você deve especificar a versão no Maven que será utilizada no build, assim como o caminho do pom e o goal do ciclo de vida do Maven:
Notificação do resultado do build por email
Você pode especificar vários destinatários do resultado do build:
Deploy do arquivo do projeto no Tomcat
No pacote da integração contínua, está a automatização do deploy de sua aplicação. Neste exemplo, temos um war enviado para o Tomcat:
Lembre-se de configurar os usuários no arquivo tomcat-users.xml:

<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>

Jenkins - Configuração do Maven

Para que uma ferramenta de integração contínua seja utilizada com sucesso, é preciso respeitar a premissa de que é necessário utilizar uma ferramenta de build. E basicamente, temos o Ant e o Maven, como opções.
Minha escolha foi pelo Maven, que na minha opinião oferece melhor estrutura e praticidade que o Ant.
Para configurar o Maven no Jenkins, acesse Gerenciar Jenkins --> Configurar Sistema. Na seção Maven desta página, você pode cadastrar as instalações disponíveis do Maven para todas as tarefas controladas pelo Jenkins: