This is an old revision of the document!
Table of Contents
Tutorial de Configuracao do Jenkins para TerraLib/TerraView
Autores: Flaverton R. Rosa e Gilberto Ribeiro de Queiroz
Data: 08 de Julho, 2015
Objetivo: Este tutorial tem por objetivo apresentar a ferramenta Jenkins, como fazer sua instalação e configuração para criação de jobs em nós mestres (master) e escravos (slaves).
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. Trata-se de um fork do projeto Hudson da Oracle, que atualmente encontra-se sob o guarda-chuva da Eclipse Foundation.
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.
TODO: incluir parágrafo sobre integração contínua e lista de termos
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).
Para instalar um plugin siga os seguintes passos na interface gráfica principal do Jenkins no seu navegador:
- Escolha a opção Gerenciar Jenkins (ou Manage Jenkins);
- Entre na opção Gerenciar Plugins (ou Manage Plugins);
- Selecione a aba Disponíveis (ou Available);
- Selecione os plugins listados acima. Para facilitar a busca, utilize a opção de filtro (filter) para localizar esses plugins;
- 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 ao build da TerraLib e do TerraView. O comando abaixo instalará todas as ferramentas necessárias ao build:
$ sudo apt-get update && sudo apt-get install ssh build-essential git cmake openjdk-7-jdk
Observação: na máquina slave não será preciso instalar o Jenkins.
Agora você deverá instalar todas as bibliotecas de terceiros requeridas pela TerraLib e pelo TerraView. Abaixo ilustramos como fazer isto apenas para testar o uso do Jenkins:
$ sudo apt-get install libboost1.55-all-dev $ sudo apt-get install qt5-default $ sudo apt-get install qttools5-dev $ sudo apt-get install libqt5svg5-dev $ sudo apt-get install libqt5designer5 $ sudo apt-get install liblog4cxx10-dev $ sudo apt-get install libgdal-dev $ sudo apt-get install libgeos++-dev $ sudo apt-get install libgettextpo-dev $ sudo apt-get install libproj-dev
Você pode consultar informacoes sobre os pacotes da seguinte forma:
$ apt-cache show libproj0 $ apt-cache search boost | more
Associando a Instância Slave à Master
Na interface gráfica da instância mestre em seu navegador, siga os seguintes passos para configurar a instância slave, associando-a a esta instância master:
- No lado esquerdo do painel, clique em Estado do executor de builds (Build Executor Status);
- Em seguida, clique em Novo Nó (New Node);
- Forneça um nome ao slave, por exemplo: tview-linux-ubuntu-14.04;
- Selecione a opção Slave Burro (Dumb Slave);
- Clique em Ok;
- Na opção Descrição (Description) forneça uma breve descrição da instância, por exemplo: “Build do TerraView no Linux Ubuntu 14.04”
- Na opção Número de Executores (# of executor), ajuste o número de processadores desejados, isto é, o número de builds concorrentes para esta instância.
- Em Diretório root remoto (Remote root directory), preencha com um caminho que será acessível ao usuário configurado mais abaixo, por exemplo
/home/jenkins/jenkins-data
. Isto fará com que os arquivos de configuração e do workspace sejam armazenados nesta pasta e mantidos em caso de reinicialização; - Agrupe slaves utilizando o mesmo Rótulo, por exemplo: TerraView;
- Na opção Uso (Usage) selecione Utilize este slave, tanto quanto possível (Utilize this node as much as possible);
- Na opção Método de lançamento (Launch Method) selecione Launch salve agents on Unix machines via SSH;
- Na opção Host insira o endereço IP do slave;
- Em Credentials, clique no botão Add;
- Na opção Kind selecione Username and password;
- Na opção Scope selecione Global;
- Preencha username e passwaord com seus dados para conectar no repositório
- Na opção Disponibilidade selecione Manter este salve ligado quanto for possível;
- Clique em Salvar.
Observação: Se você não deseja que a instância mestre execute jobs, deverá editar as configurações do master e ajustar o número de executores para zero.
Instalação e Configuração do Jenkins em Máquinas Windows
Instalação e Configuração de Instâncias Slaves
Backup com Jenkins Master
Configuração de Idioma da Instância Master
Definindo Configurações para Envio de e-mails
Criando um Job para Build da TerraLib e TerraView 5
Definição de um Job a ser Executado no Slave Linux
Na interface gráfica principal do Jenkins, no navegador, acessível na instância mestre, siga as instruções abaixo:
- Clique em Novo Job (New Item).
- Preencha o campo Nome do Job (Item Name). Exemplo: tview-develop-build.
- Selecione a opção Free-style project.
- Clique em OK.
- Informe uma Descrição (Description) para o projeto de build: Build TerraLib/TerraView using the source code from branch develop.
- Selecione Descartar Builds Antigos (Discard Old Builds);
- Ajuste o #Máximo de builds (Max # of builds to keep). Exemplo: 10;
- Selecione Git no tópico Gerenciamento de código fonte;
- Em Repository URL aponte para: https://git.dpi.inpe.br/terralib5.