| 5 | | === Linux Ubuntu 14.04 === |
| | 5 | === Criando um slave Ubuntu === |
| | 6 | |
| | 7 | ==== Criando um Job para Build da !TerraLib ==== |
| | 8 | |
| | 9 | Definição de um Job a ser Executado no Slave Linux |
| | 10 | Na interface gráfica principal do Jenkins, no navegador, acessível na instância mestre, siga as instruções abaixo: |
| | 11 | |
| | 12 | * Clique em '''Novo Job''' (''New Item''). |
| | 13 | * Preencha o campo '''Nome do Job''' (''Item Name''). Exemplo: terralib-build-linux-ubuntu-14.04. |
| | 14 | * Selecione a opção '''Free-style project'''. |
| | 15 | * Clique em '''OK'''. |
| | 16 | * Informe uma '''Descrição''' (''Description'') para o projeto de build: Build TerraLib and TerraView. Branches: release-5.0, develop |
| | 17 | * Selecione '''Descartar Builds Antigos''' (''Discard Old Builds''). |
| | 18 | * Ajuste o '''#Máximo de builds''' (''Max # of builds to keep''). Exemplo: 100. |
| | 19 | * Selecione '''Git''' no tópico Gerenciamento de código fonte. |
| | 20 | * Em '''Repository URL''' aponte para: https://gitlab.dpi.inpe.br/terralib/terralib. |
| | 21 | * Em '''Branches to build''' aponte para o branch correto, como por exemplo: */master. |
| | 22 | * 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. |
| | 23 | * Na opcao '''Build''' escolha Conditional steps (''multiple'') |
| | 24 | * Em '''Run''' escolha execution node |
| | 25 | * Em '''Execute''' on escolha o slave onde será executado o job, por exemplo: ''ubuntu-14.04'' |
| | 26 | * Em '''Steps to run if condition is met''' |
| | 27 | * Selecione '''CMake Build''' e informe o seguinte: |
| | 28 | * '''Buildscript Generator''': Unix Makefiles. |
| | 29 | * '''Source Directory''': build/cmake |
| | 30 | * '''Build Type''': Release |
| | 31 | * '''Build Directory''': solution |
| | 32 | * Em '''Advanced''' entre com os seguinte argumento para o '''CMake''' (other CMAKE arguments): |
| | 33 | {{{ |
| | 34 | -DCMAKE_BUILD_TYPE:STRING='Release' |
| | 35 | -DCMAKE_PREFIX_PATH:PATH="/home/jenkins/MyLibs;/home/jenkins/MyLibs/lib;/home/jenkins/MyLibs/gdal2;/home/jenkins/MyLibs/pgsql" |
| | 36 | -DTERRALIB_BUILD_EXAMPLES_ENABLED:BOOL=OFF |
| | 37 | -DTERRALIB_BUILD_UNITTEST_ENABLED:BOOL=OFF |
| | 38 | -DTERRALIB_DOXYGEN_ENABLED:BOOL=OFF |
| | 39 | -DTERRALIB_QHELP_ENABLED:BOOL=OFF |
| | 40 | -DTERRALIB_QTRANSLATION_ENABLED:BOOL=OFF |
| | 41 | -DTERRALIB_MOD_BINDING_JAVA_ENABLED:BOOL=OFF |
| | 42 | -DTERRALIB_MOD_BINDING_PYTHON_ENABLED:BOOL=OFF |
| | 43 | -DTERRALIB_MOD_BINDING_LUA_ENABLED:BOOL=OFF |
| | 44 | -DGEOS_INCLUDE_DIR:PATH="/home/jenkins/MyLibs/include/geos" |
| | 45 | -DGNUGETTEXT_INCLUDE_DIR:PATH="/usr/include" |
| | 46 | -DGNUGETTEXT_LIBRARY:FILEPATH='/usr/lib/x86_64-linux-gnu/libgettextpo.so' |
| | 47 | -DGNUICONV_LIBRARY:FILEPATH='/usr/lib/x86_64-linux-gnu/libc.so' |
| | 48 | -DCMAKE_INSTALL_PREFIX="/home/jenkins/Programs/terralib5" |
| | 49 | }}} |
| | 50 | * Adicione dois '''Build Tool Invocations''', uma para o '''make''' e outra para o '''make install''' (neste último caso basta colocar o argumento install). |
| | 51 | |
| | 52 | |
| | 53 | |
| | 54 | ---- |
| | 55 | ==== Criando um Job para Build do TerraMA2 ==== |
| | 56 | |
| | 57 | 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''' |
| | 58 | Na interface gráfica principal do Jenkins, no navegador, acessível na instância mestre, siga as instruções abaixo: |
| | 59 | |
| | 60 | * Clique em '''Novo Job''' (''New Item''). |
| | 61 | * Preencha o campo '''Nome do Job''' (''Item Name''). Exemplo: terrama2-build-linux-ubuntu-14.04. |
| | 62 | * Selecione a opção '''Free-style project'''. |
| | 63 | * Clique em '''OK'''. |
| | 64 | * Informe uma '''Descrição''' (''Description'') para o projeto de build: Build TerraMA2 via Pull requests. |
| | 65 | * Selecione '''Descartar Builds Antigos''' (''Discard Old Builds''). |
| | 66 | * Ajuste o '''#Máximo de builds''' (''Max # of builds to keep''). Exemplo: 10. |
| | 67 | * Selecione '''Git''' no tópico Gerenciamento de código fonte. |
| | 68 | * Em '''Repository URL''' aponte para: https://github.com/TerraMA2/terrama2.git. |
| | 69 | * Em '''Advanced''', adicione '''Name''' coloque '''origin'''; |
| | 70 | * 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. |
| | 71 | * 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. |
| | 72 | * 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'''; |
| | 73 | * 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. |
| | 74 | * Na opcao '''Build''' escolha Conditional steps (''multiple'') |
| | 75 | * Em '''Run''' escolha execution node |
| | 76 | * Em '''Execute''' on escolha o slave onde será executado o job, por exemplo: ''ubuntu-14.04'' |
| | 77 | * Em '''Steps to run if condition is met''' |
| | 78 | * Selecione '''CMake Build''' e informe o seguinte: |
| | 79 | * '''Buildscript Generator''': Unix Makefiles. |
| | 80 | * '''Source Directory''': build/cmake |
| | 81 | * '''Build Type''': Release |
| | 82 | * '''Build Directory''': solution |
| | 83 | * Em '''Advanced''' entre com os seguinte argumento para o '''CMake''' (other CMAKE arguments): |
| | 84 | {{{ |
| | 85 | -DCMAKE_INSTALL_PREFIX:PATH='$WORKSPACE/install/terrama2' |
| | 86 | -DCMAKE_PREFIX_PATH:PATH='/opt/3rdparty;/opt/3rdparty/terralib5;/opt/3rdparty/terralib5/lib/cmake' |
| | 87 | }}} |
| | 88 | * Adicione dois '''Build Tool Invocations''', uma para o '''make''' e outra para o '''make install''' (neste último caso basta colocar o argumento install). |