TerraLib and TerraView Wiki Page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:documentation:jenkins [2015/07/08 14:10]
gribeiro [Definição de um Job a ser Executado no Slave Linux]
wiki:documentation:jenkins [2015/08/13 14:58] (current)
gribeiro [Instalação e Configuração de Instâncias Slaves]
Line 48: Line 48:
  
 Se tudo estiver funcionando corretamente,​ instale os seguintes plugins: Se tudo estiver funcionando corretamente,​ instale os seguintes plugins:
-  * //Git Client ​Plugin//: (id: git).+  * //Git Plugin//: (id: git).
   * //CMake Builder Plugin//: (id: cmake).   * //CMake Builder Plugin//: (id: cmake).
   * //MSBuild Plugin//: para o build em ambientes Microsoft Windows com Visual C++ (id: msbuild).   * //MSBuild Plugin//: para o build em ambientes Microsoft Windows com Visual C++ (id: msbuild).
Line 83: Line 83:
 </​code>​ </​code>​
  
-Você pode consultar informacoes sobre os pacotes da seguinte forma:+Os comandos acima encontram-se resumidos em uma única linha da seguinte forma: 
 +<code bash> 
 +$ sudo apt-get install libboost1.55-all-dev qt5-default qttools5-dev libqt5svg5-dev libqt5designer5 liblog4cxx10-dev libgdal-dev libgeos++-dev libgettextpo-dev libproj-dev 
 +</​code>​ 
 + 
 +Além das bibliotecas acima, você precisará instalar a QWT e a QtPropertyBrowser,​ conforme explicado na seção de build da TerraLib. 
 + 
 +Outra medida importante é desabilitar a verificação via SSL no git para o usuário que se conectará à instancia //slave// via SSH. Você pode fazer isso da seguinte forma, aplicando para todos os usuários:​ 
 +<code bash> 
 +$ sudo git config --system http.sslverify false 
 +</​code>​ 
 + 
 +Ou pode fazer somente para usuário corrente: 
 +<code bash> 
 +$ git config --global http.sslverify false 
 +</​code>​ 
 + 
 +**Dica:​** ​Você pode consultar informacoes sobre os pacotes da seguinte forma:
 <​code>​ <​code>​
 $ apt-cache show libproj0 $ apt-cache show libproj0
 $ apt-cache search boost | more $ apt-cache search boost | more
 </​code>​ </​code>​
- 
 ==== Associando a Instância Slave à Master ==== ==== 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//: 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//); +  * No lado esquerdo do painel, clique em //**Estado do executor de builds**// (//Build Executor Status//). 
-  * Em seguida, clique em //Novo Nó// (//New Node//); +  * Em seguida, clique em //**Novo Nó**// (//New Node//). 
-  * Forneça um nome ao //slave//, por exemplo: tview-linux-ubuntu-14.04; +  * Forneça um //**nome**// ao //slave//, por exemplo: tview-linux-ubuntu-14.04. 
-  * Selecione a opção //Slave Burro// (//Dumb Slave//); +  * Selecione a opção //**Slave Burro**// (//Dumb Slave//). 
-  * Clique em //Ok//; +  * 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 //**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. +  * 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; +  * 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; +  * 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 //**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 //**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//; +  * Na opção //**Host**// insira o endereço IP do //slave//. 
-  * Em //​Credentials//,​ clique no botão //Add//; +  * Em //**Credentials**//, clique no botão //**Add**//. 
-  * Na opção //Kind// selecione //Username and password//; +  * Na opção //**Kind**// selecione //**Username and password**//. 
-  * Na opção //Scope// selecione //Global//; +  * Na opção //**Scope**// selecione //**Global**//. 
-  * Preencha //​username//​ e //passwaord// com seus dados para conectar no repositório +  * Preencha //**username**// e //**password**// com seus dados para conectar ​via SSH no slave. 
-  * Na opção //​Disponibilidade//​ selecione //Manter este salve ligado quanto for possível//; +  * Na opção //**Disponibilidade**// selecione //**Manter este //​slave// ​ligado quanto for possível**//. 
-  * Clique em //Salvar//.+  * 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.+**Observação:​** Se você não deseja que a instância ​//​master// ​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 do Jenkins em Máquinas Windows =====
 ==== Instalação e Configuração de Instâncias Slaves ==== ==== Instalação e Configuração de Instâncias Slaves ====
 +==== Associando a Instância Slave à Master ====
 ===== Backup com Jenkins Master ===== ===== Backup com Jenkins Master =====
  
Line 132: Line 148:
   * Clique em //**OK**//.   * Clique em //**OK**//.
   * Informe uma //​**Descrição**//​ (//​**Description**//​) para o projeto de build: //Build TerraLib/​TerraView using the source code from branch develop//.   * 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**//); +  * Selecione //​**Descartar Builds Antigos**// (//​**Discard Old Builds**//). 
-  * Ajuste o //​**#​Máximo de builds**// (//**Max # of builds to keep**//). Exemplo: 10; +  * Ajuste o //​**#​Máximo de builds**// (//**Max # of builds to keep**//). Exemplo: 10. 
-  * Selecione //**Git**// no tópico //​**Gerenciamento de código fonte**//;+  * Selecione //**Git**// no tópico //​**Gerenciamento de código fonte**//.
   * Em //​**Repository URL**// aponte para: [[https://​git.dpi.inpe.br/​terralib5]].   * Em //​**Repository URL**// aponte para: [[https://​git.dpi.inpe.br/​terralib5]].
-  *  +  * Em //​**Credentials**//,​ clique no botão //​**Add**//​. 
 +    * Na opção //​**Kind**//​ selecione //​**Username and password**//​. 
 +    * Na opção //​**Scope**//​ selecione //​**Global**//​. 
 +    * Preencha username e password com seus dados de acesso ao repositório Git da TerraLib e TerraView. 
 +  * Em //​**Branches to build**// aponte para o branch correto, como por exemplo: ''​*/​develop''​. 
 +  * Na opção //**Trigger de Builds**// (//**Build Triggers**//​),​ escolha a opção //**Build Periodically**//​ e ajuste uma escala de tempo adequada, por exemplo, consultar o servidor por mudanças a cada 15 minutos: ''​H/​15 * * * *''​. 
 +  * Na opcao //​**Build**//​ escolha //​**Conditional steps (multiple)**//​ 
 +    * Em //**Run**// escolha //​**execution node**// 
 +    * Em //**Execute on**// escolha o //​**slave**//​ onde será executado o //job//, por exemplo: //​tview-linux-ubuntu-14.04//​ 
 +    * Em //**Steps to run if condition is met**// 
 +      * Selecione //**CMake Build**// e informe o seguinte: 
 +        * //​**Buildscript Generator**//:​ //Unix Makefiles//​. 
 +        * //**Source Directory**//:​ //​build/​cmake//​ 
 +        * //**Build Type**//: //​Release//​ 
 +        * //**Build Directory**//:​ solution 
 +        * Em //​**Advanced**//​ entre com os seguinte argumento para o CMake (//other CMAKE arguments//​):​ 
 +<code cmake> 
 +-DCMAKE_INSTALL_PREFIX:​PATH='/​home/​scidb/​MyInstalls/​terralib5'​ 
 +-DCMAKE_PREFIX_PATH:​PATH='/​usr;/​usr/​local;/​usr/​local/​qwt-6.1.2'​ 
 +-DTERRALIB_BUILD_EXAMPLES_ENABLED:​BOOL=OFF 
 +-DTERRALIB_BUILD_UNITTEST_ENABLED:​BOOL=OFF 
 +-DTERRALIB_DOXYGEN_ENABLED:​BOOL=OFF 
 +-DTERRALIB_QHELP_ENABLED:​BOOL=OFF 
 +-DTERRALIB_QTRANSLATION_ENABLED:​BOOL=OFF 
 +-DGEOS_INCLUDE_DIR:​PATH='/​usr/​include/​geos'​ 
 +-DGNUGETTEXT_INCLUDE_DIR:​PATH='/​usr/​include'​ 
 +-DGNUGETTEXT_LIBRARY:​FILEPATH='/​usr/​lib/​x86_64-linux-gnu/​libgettextpo.so'​ 
 +-DGNUICONV_LIBRARY:​FILEPATH='/​usr/​lib/​x86_64-linux-gnu/​libc.so'​ 
 +</​code>​ 
 +        * Adicione dois //**Build Tool Invocations**//,​ uma para o //make// e outra para o //make install// (neste último caso basta colocar o argumento install). 
 +==== Definição de um Job a ser Executado no Slave Windows ====