| 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.
- Em Repository URL aponte para: https://github.com/TerraMA2/terrama2.git;
- Em Branches to build aponte para master;
- 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
