wiki:programmersguide/jenkins/jobs

Version 13 (modified by raphael.costa, 9 years ago) (diff)

--

Jenkins: Integração Continua

Jobs

Criando um slave Ubuntu

Criando um Job para Build da TerraLib

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: terralib-build-linux-ubuntu-14.04.
  • Selecione a opção Free-style project.
  • Clique em OK.
  • Informe uma Descrição (Description) para o projeto de build: Build TerraLib? and TerraView?. Branches: release-5.0, develop
  • Selecione Descartar Builds Antigos (Discard Old Builds).
  • Ajuste o #Máximo de builds (Max # of builds to keep). Exemplo: 100.
  • Selecione Git no tópico Gerenciamento de código fonte.
  • Em Repository URL aponte para: https://gitlab.dpi.inpe.br/terralib/terralib.
  • Em Branches to build aponte para o branch correto, como por exemplo: */master.
  • Na opção Trigger de Builds (Build Triggers), escolha a opção Poll SCM e ajuste uma escala de tempo adequada, por exemplo, consultar o servidor por mudanças uma vez ao dia: Schedule : H 8 * * 1-5. Essa estrutura representa que o job será disparado diariamente as 08:00 AM, de segunda a sexta.
  • 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: 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):
    -DCMAKE_BUILD_TYPE:STRING='Release'
    -DCMAKE_PREFIX_PATH:PATH="/home/jenkins/MyLibs;/home/jenkins/MyLibs/lib;/home/jenkins/MyLibs/gdal2;/home/jenkins/MyLibs/pgsql"
    -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
    -DTERRALIB_MOD_BINDING_JAVA_ENABLED:BOOL=OFF
    -DTERRALIB_MOD_BINDING_PYTHON_ENABLED:BOOL=OFF
    -DTERRALIB_MOD_BINDING_LUA_ENABLED:BOOL=OFF
    -DGEOS_INCLUDE_DIR:PATH="/home/jenkins/MyLibs/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'
    -DCMAKE_INSTALL_PREFIX="/home/jenkins/Programs/terralib5"
    
  • Adicione dois Build Tool Invocations, uma para o make e outra para o make install (neste último caso basta colocar o argumento install).

Criando um Job para Build do TerraMA2

Definição de um Job a ser Executado no Slave Linux que será integrado com os Pull Request do !Github. Para isso, será necessário o plugin GitHub Pull Request Builder 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: terrama2-build-linux-ubuntu-14.04.
  • Selecione a opção Free-style project.
  • Clique em OK.
  • Informe uma Descrição (Description) para o projeto de build: Build TerraMA2 via Pull requests.
  • 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://github.com/TerraMA2/terrama2.git.
  • Em Advanced, adicione Name coloque origin;
  • Em Refspec, coloque +refs/pull/*:refs/remotes/origin/pr/*. Esse mecanismo permite que o Jenkins faça o fetch das mudanças e consiga apontar para o servidor remoto pegando todos os pull requests disponíveis e partir do commit recebido aplicar, o processo de build.
  • Em Branches to build aponte para o branch correto, como por exemplo: ${sha1}. Como agora o jenkins trabalhará com pull requests, essa variavel (fornecida pelo plugin ghprb) guarda o commit recebido pelo servidor.
  • Na opção Trigger de Builds (Build Triggers), escolha a opção GitHub? Pull Request Builder, marque Use github hooks for build triggering e em seguida selecione Advanced;
  • Marque a Build every pull request automatically without asking e em Trigger Setup, adicione Commit Status Context como build. Isso é o nome do status que será apresentado na interface do GitHub?.
  • 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: 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):
    -DCMAKE_INSTALL_PREFIX:PATH='$WORKSPACE/install/terrama2' 
    -DCMAKE_PREFIX_PATH:PATH='/opt/3rdparty;/opt/3rdparty/terralib5;/opt/3rdparty/terralib5/lib/cmake'
    
  • Adicione dois Build Tool Invocations, uma para o make e outra para o make install (neste último caso basta colocar o argumento install).

MacOS El Captain

Windows 10

TODO

Builds Diários

Gerador de instalador Linux Ubuntu 14.04

  • Clique em New Item;
  • Preencha o campo Item Name. Exemplo: terrama2-build-master;
  • Selecione a opção Free-style project;
  • Clique em OK;
  • Informe uma Description para o projeto de build: Build TerraMA².
  • Selecione Git no tópico Gerenciamento de código fonte.
  • Na opção Build Triggers, escolha a opção Build periodically e coloque a expressão: H 22 * * * * Representa que será disparado toda noite as 10h.
  • Em Build, 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: $WORKSPACE/packages/debian-package/terrama2.conf.cmake
  • Em Build step, adicione Execute bash e rode o seguinte comando:
    cd solution
    LD_LIBRARY_PATH=`pwd`/bin make package -j 4
    
  • Em Post Build Step, selecione Trigger builds projects:
    • Preencha o job de test de instalador: terrama2-installer-linux-ubuntu-14.04;
    • Em Parameters, selecione Predefined e deixe vazio. É importante caso contrario, o job não será disparado;

Teste do instalador

The debian package generated by daily build is uploaded to a clean [docker container] with following packages:

  • TerraLib 5.2 (/opt/terralib/5.2.0);
  • NodeJS 4.5;
  • PostgreSQL 9.3 (user postgres configured with postgres password);
  • PostGIS 2.1;

See docker image in TerraMA² Docker Beta1

Referências