Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
wiki:documentation:jenkins [2015/07/08 13:58] gribeiro [Definição de um Job a ser Executado no Slave Linux] |
wiki:documentation:jenkins [2015/07/08 17:44] gribeiro [Associando a Instância Slave à Master] |
||
---|---|---|---|
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: | + | 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 ==== | ||
Line 132: | Line 143: | ||
* 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**//). |
- | * #Máximo de builds para manter ajustado para 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 Repositor URL entre com: https://git.dpi.inpe.br/terralib5. | + | * Em //**Repository URL**// aponte para: [[https://git.dpi.inpe.br/terralib5]]. |
- | * | + | * 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 ==== |