wiki:programmersguide/jenkins

Version 26 (modified by raphael.costa, 10 years ago) (diff)

--

TerraMA² - Jenkins Configuration

Autor: Paulo R. M. Oliveira, Flaverton Rosa, Gilberto Ribeiro de Queiroz

Data: 06/10/2015

Resumo: Este documento apresenta como configurar o ​Jenkins para executar tarefas de build da TerraLib/TerraView e do TerraMA².

Integração Continua

"Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho com certa frequência, podendo ocorrer diariamente ou até mesmo várias vezes ao dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução dos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” Martin Fowler

Quais os benefícios de fazer integração continua?

Basicamente, a grande vantagem da integração contínua está no feedback instantâneo. Isso funciona da seguinte forma: a cada commit no repositório, o build é feito automaticamente, com todos os testes sendo executados de forma automática e falhas sendo detectadas. Se algum commit causar uma erro compilação ou quebrar qualquer um dos testes, a equipe toma conhecimento instantaneamente (ex: através de e-mail). A equipe pode então corrigir o problema o mais rápido possível, o que é fundamental para não introduzir erros ao criar novas funcionalidades, refatorar, etc.

Integração contínua é mais uma forma de trazer segurança em relação a mudanças: você pode fazer modificações sem medo, pois será avisado caso algo saia do esperado.

O que é o Jenkins

O ​Jenkins é uma ferramenta de integração contínua, que fornece um ambiente de execução de jobs pré-definidos com o objetivo de simplificar e automatizar o workflow de desenvolvimento de sistemas.

O Jenkins pode ser utilizado para:

  • Análise de Código;
  • Realização do processo de build do código de um sistema;
  • Execução dos testes;
  • Geração de instaladores e pacotes;
  • Deploy.

Instalacão do Jenkins no Linux Ubuntu 14.04

Instalação e Configuração da Instância Master

Baixar a chave do repositório Jenkins:

$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

Adicionar ao arquivo /etc/apt/sources.list a URL do repositório:

$ echo "deb http://pkg.jenkins-ci.org/debian binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list

Fazer a instalação do pacote Jenkins:

$ sudo apt-get update && sudo apt-get install jenkins

Agora, o Jenkins já deverá estar funcional e disponível para acesso no navegador. Basta digitar o seguinte endereço no seu navegador:

http://localhost:8080

Se tudo estiver funcionando corretamente, instale os seguintes plugins:

  • Git Plugin: (id: git).
  • CMake Builder Plugin: (id: cmake).
  • MSBuild Plugin: para o build em ambientes Microsoft Windows com Visual C++ (id: msbuild).
  • Condicional BuildStep Plugin: para execução de jobs em mais de um tipo de sistema operacional (id: conditional-step).
  • GitHub pull request builder plugin: para disparar a compilação para um pull request do GitHub (id: ghprb).

Para instalar um plugin siga os seguintes passos na interface gráfica principal do Jenkins no seu navegador:

  1. Escolha a opção Gerenciar Jenkins (ou Manage Jenkins);
  2. Entre na opção Gerenciar Plugins (ou Manage Plugins);
  3. Selecione a aba Disponíveis (ou Available);
  4. Selecione os plugins listados acima. Para facilitar a busca, utilize a opção de filtro (filter) para localizar esses plugins;
  5. Finalmente, escolha a opção Baixar, Instalar e Reiniciar.

Instalação e Configuração de Instâncias Slaves

Para configurar uma máquina (virtual ou física) como slave, você deverá instalar as ferramentas necessárias para a compilação do TerraMA2. Preparamos um bash script para a compilação e instalação das dependências no Linux Ubunutu 14.04. Este script pode ser encontrado no código fonte do TerraMA² na pasta install.

Siga os seguintes passos:

  1. Baixe o pacote de dependências utilizado pela equipe de desenvolvimento: terrama2-3rdparty-linux-ubuntu-14.04.tar.gz .
  1. Copie o script install-3rdparty-linux-ubuntu-14.04.sh da pasta install para a mesma pasta que você baixou o pacote do passo anterior.
  1. Abra a linha de comando e execute o script install-3rdparty-linux-ubuntu-14.04.sh especificando a pasta para instalar as dependências.
$ TERRAMA2_DEPENDENCIES_DIR="/opt/3rdparty" ./install-3rdparty-linux-ubuntu-14.04.sh