Introdução
A integração contínua vem para ajudar a antecipar os problemas, ela, continuamente, verifica o servidor de versionamento, checando a estabilidade do código: vendo se ele compila, se os testes executam com sucesso, se é possível empacotar o código para ser colocado em um servidor de produção. Essas verificações são feitas através de um software que fica no meio do caminho, entre o código comitado e o servidor de versionamento. Ele pode ser configurado, que é o que vamos fazer neste curso, para fazer verificações de acordo com a necessidade de cada equipe de desenvolvimento. Estes softwares são chamados de servidores de integração contínua
Instalação
Vamos começar configurando o Jenkins e preparando nosso ambiente.
- Vá ao site do Jenkins e baixe a versão 2 do Jenkins, formato war.
- Vamos iniciar o Jenkins, na pasta onde você colocou o war, rode o comando:
$ java -jar jenkins.war --httpPort=8180
- Lembre-se de copiar a senha que é exibida no console durante a inicialização do Jenkins.
- Acesse o Jenkins no Chrome, através do caminho: http://localhost:8180. Vai aparecer um tela com uma caixa de texto, onde você deve colar a senha que copiamos no console.
- Na tela seguinte escolha a opção Instalar Plugins Sugeridos (Install suggested plugins).
- Quando a instalação dos plugins finalizar preencha o formulário com as informações do usuário administrador do Jenkins, que você está criando nesse momento.
Agora, vamos fazer as configurações necessárias no Jenkins:
- Primeiro, configure o JDK, apontando o JAVA_HOME na opção: Gerenciar Jenkins > Global Tool Configuration > JDK
- Preencha os campos Nome e JAVA_HOME
- Ainda em Global Tool Configuration vá na opção Maven
- Preencha os campos Nome e MAVEN_HOME
Criando o Job no Jenkins
- Voltando à tela do Jenkins e, na página principal, clique na opção Novo Job.
- Informe um nome para o seu Job e selecione a opção Construir um projeto de software free-style, então clique em OK.
- Na opção Gerenciamento de código fonte, clique no radio button Git e cole a url do repositório, copiada do Github, no campo de texto Respository URL, mantenha as demais opções na forma padrão.
- Para configurar as metas do Maven, clique em Build* na parte superior da página (ou, simplesmente role até o local das configurações de Build) e selecione a opção Chamar alvos Maven de alto nível, na caixa de seleção Adicionar passo no build**.
- No campo Goals preencha com clean package.
- Clique em Salvar e depois, na tela seguinte, clique em Construir agora.
Depois de executado, é possível clicar no número do build e na opção Saída do console, para visualizar o log de execução da construção (também é possível clicar na barra de progresso durante a execução da construção e ir direto para a saída do console).
Para retornarmos para as configurações do nosso Job clique, no canto superior esquerdo, no link argentum-web e depois na opção Configurar.
Vá até as configurações de Build e, na caixa de seleção Adicionar passo no build, selecione a opção Executar shell.
Na caixa de texto Comando, informe o seguinte:
cp target/argentum-web.war /caminho/para/o/seu/tomcat
Lembre-se de trocar o caminho acima para o caminho onde você descompactou o Tomcat na sua máquina.
Inicie o seu Tomcat: na pasta $CATALINA_HOME/bin
(onde $CATALINA_HOME
é a pasta raiz do seu Tomcat), execute: $ ./startup.sh
- Clique em Salvar e depois, na tela seguinte, clique em Construir agora.
Agora vamos fazer a instalação do plugin Deploy to container.
A partir da página inicial do Jenkins, clique em Gerenciar Jenkins e depois em Gerenciar plugins, clicando na aba Disponíveis. Utilize o filtro para localizar o plugin, digitando Deploy to container na caixa de texto do filtro.
Agora, marque o checkbox e clique no botão Instalar sem reiniciar.
Volte para a página inicial do Jenkins, selecione o Job argentum-web e clique em Configurar.
Vá até as opções de Build, remova a configuração de Executar Shell clicando no X.
Na caixa de seleção Adicionar ação de pós-build, selecione a opção "Deploy war/ear to a container".
Preencha os campos com os seguintes valores:
WAR/EAR files: target/argentum-web.war Context path: argentum-web
Na caixa de seleção Add Container, selecione a opção Tomcat 7.x e preencha os campos com os seguintes valores:
Manager user name: jenkins Manager password: jenkins Tomcat URL: http://localhost:8080
Observe que esse usuário ainda não foi criado no Tomcat, nós precisamos configurar o usuário lá no Tomcat e fornecer as devidas permissões.
Vá até a pasta $CATALINA_HOME/conf e abra o arquivo tomcat-user.xml.
No final do arquivo, imediatamente antes da tag </tomcat-users> adicione o seguinte:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="jenkins" password="jenkins" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
Agora vamos parar e iniciar novamente o Tomcat, na pasta $CATALINA_HOME/bin
use os comandos:
$ ./shutdown.sh
$ ./startup.sh
Volte para o Jenkins e no Job argentum-web clique em Construir agora. Se tudo estiver ok, a construção vai ocorrer com sucesso e, ao final, o seu war será instalado no Tomcat pelo plugin