Como compilar as aplicacións de Android con Jenkins

en tempos de desenvolvemento de software a través de metodoloxías áxiles, Scrum e integración continua, onde todos os membros dun equipo son frecuentemente destinados e poden realizar varias cargas por día dependendo do Tarefas a desenvolver, é fundamental usar ferramentas que permiten o estado do produto en todo momento, as diferentes versións e o Estado que se atopa.

Cada vez que se realiza un ascenso para o repositorio, un Integración que compila o código fonte e verifica que se fixo correctamente, obtendo un executable da aplicación. Para este proceso, en SDOS, optamos polo uso de Jenkins, un software libre e de código aberto escrito en Java e está baseado no Proxecto Hudson.

Por que Jenkins?

isto O sistema admite ferramentas de control de versións como SVN ou GIT e pode executar proxectos baseados en formigas e maven, grao, etc. Ademais, sendo un proxecto de código aberto, é o máis utilizado polos desenvolvedores, cunha gran comunidade de desenvolvemento e soporte.

Pero Jenkins non é só unha ferramenta para o equipo de desenvolvemento, tamén serve para o QA Equipo: do mesmo xeito que permite a execución de probas automáticas ou mesmo o uso de SonarQube, xusto despois de que cada compilación permítelle comprobar a calidade do aumento.

Como usar Jenkins con Android?

No desenvolvemento de Android, Jenkins pode servirnos para xerar un .APK cada vez que realizamos unha subida de código para o repositorio, manténdoo nun servidor FTP onde teremos unha lista de todas as versións xeradas.

Neste post contámosche como completar todo o proceso. Comezamos!

Crear un proxecto en Jenkins

En primeiro lugar, creamos un novo traballo en Jenkins.

A continuación, seleccionamos un novo proxecto de estilo libre para poder configurala segundo as nosas necesidades. Escribimos un nome e prema en Aceptar.

Configurar as seccións de traballo

Xeral

Nesta sección definiremos o seguinte:

  • nome e descrición do proxecto. É aconsellable dar un nome intuitivo ao proxecto e unha descrición específica para saber que traballo está en execución:
  • Cando se descargan as construcións antigas. É importante definir un número máximo de compilación para aforrar xa que non queremos sobrecargar a máquina ou encher as execucións do noso traballo. Como recomendación, quedaremos coas últimas 10 execucións realizadas. Se, fóra do proxecto, necesitamos máis, o número pode ser aumentado, pero só debe ser en casos específicos.
  • Parámetros para executar o proxecto. Na parte xeral tamén definiremos os parámetros necesarios para executar un emprego. Para engadilos temos que facer clic neste proxecto é parametrizado e seleccionar un parámetro de elección. Os parámetros para a compilación dunha aplicación de Android serán os seguintes:
    • tipo. Por defecto en Android, dous tipos, depuración e liberación, pero pódense engadir tipos personalizados. No noso caso engadiremos: liberación, preproducción e depuración.
    • sabores. Un sabor define unha versión personalizada da aplicación. Isto permítenos definir diferentes personalizacións da aplicación en función da variante que necesitamos. Por exemplo, poderiamos ter unha fariña para unha demostración da aplicación e outra coa aplicación completa de pagamento.
    • parámetro GIT. Definiremos como parámetro a rama que queremos do repositorio de formigón. Teremos que definir un valor por defecto para as execucións automáticas. Se temos moitas ramas no mesmo repositorio, podemos facer un filtro por nome de rama como, por exemplo, * * _ RC. * (Todas as ramas que inclúen _rc, candidato de Rerad).

Podes atopar máis información sobre os parámetros desta ligazón.

Xestión de código fonte

Nesta sección definiremos o tipo de repositorio que queremos usar, no noso Caso será git.

Unha vez que seleccionemos a opción GIT temos que engadir:

  • URL do repositorio. Onde está gardado o código do proxecto.
  • credenciais. Usaremos o usuario de GIT engadido previamente en Jenkins.
  • rama. Especificaremos a rama específica do proxecto que usaremos. Como escollemos un co parámetro de parámetro GIT, pasamos o valor dese parámetro con $ rama.

Construír disparadores

Neste Sección Imos definir o tipo de activador que necesitamos para executar a compilación. Se non engadimos ningún, só será executado cando o forzamos. A partir de aquí tamén podemos:

  • realizar unha execución remota dun script.
  • Realizar a execución periódicamente, por exemplo todas as noites ás 00:00.
  • Realizar unha execución cando se produza un empuxe ou unha nova solicitude de combustible no repositorio.

Por agora imos deixar por defecto e executámolo manualmente.

Build Enviroment

Nesta sección definiremos dúas opcións:

  1. Eliminar o cartafol de espazo de traballo antes de cada execución (para realizar unha execución limpa).
  2. Engade a marca de tempo aos rexistros para ter máis información.

Construír

Na sección de compilación engadiremos unha cuncha de execución para executar os seguintes comandos:

  • chmod + x Gradlew: dá permisos de execución ao ficheiro de gradona no caso de que non o teña (por defecto xa o ten).
  • ./ GradeLew: executa o Ficheiro gradlew na máquina onde Jenkins é un Linux (coidado con este ficheiro!).
  • Assemble: É a orde de compilar unha aplicación de Android.
  • $ Sabor: Sabor elixido para a execución .. Poñemos $ para substituír o valor do parámetro seleccionando desde o sabor desplegable na sección xeral.
  • $ Tipo: Escolle para a execución. Puxemos $ para substituír o valor do parámetro polo tipo seleccionado na sección xeral.

Accións post-build

a partir desta sección imos principalmente Tres accións:

  • Gardar o artefacto xerado. Manteremos todos os ficheiros .apk xerados na compilación do proxecto. Por defecto, gardarémolo en: ** / *. APK
  • Enviaremos o ficheiro .apk dentro do cartafol / Apks / a un servidor FTP. No noso caso, temos un servidor chamado NAS1 no que gardaremos a APK xerada nun cartafol xa creado no servidor. Non: Para configurar a conexión cun servidor FTP, debemos ir a Xestionar Jenkins > Configurar jenkins > publica a través de FTP e engada os datos correspondentes ao noso servidor.
  • Enviar correo Cada vez que remate unha compilación usando a acción de notificación editable de publicidade editable. A configuración que teremos será a seguinte:

Pode copiar o contido da mensaxe por defecto deste HTML:

Asunto predeterminado

 Result of Build $BUILD_NUMBER ${JOB_NAME} Project.

Contido predeterminado

<html><p> Hello. </p><p>This mail is auto-generated as part of the Jenkins execution of the project <b>${JOB_NAME}</b> </p><h2> BUILD DETAILS: </h2><p> <b>Project Name:</b> ${JOB_NAME} <br> <b>Build URL:</b> ${BUILD_URL} <br> <b> Build Number: </b> ${BUILD_NUMBER} <br> <b>Build Status: </b> ${BUILD_STATUS} <br> <b>Type: </b> $Type <br> <b>Flavor: </b> $Flavor <br> <b>Branch: </b> $Branch <br> <b>Download APK: </b> ${BUILD_URL}/lastSuccessfulBuild/artifact/apks/ <br> <b>Log: </b> The log file is attached into this e-mail. <br> <b>Log URL: </b> ${BUILD_URL}${JOB_NAME}/lastBuild/console <br> <b>Changes: </b> ${CHANGES, format="List of changes: <li><ul> %m </ul><ul> %d </ul> <ul> %r </ul></li> <br>"} <br></p><p> Thank you & Regards. </p></html>

Este modelo é xenérico para calquera proxecto Como usa as seguintes variables:

  • $ {JOB_NAME}. Nome do traballo en Jenkins.
  • $ {build_url}. URL de traballo exacto.
  • $ build_number}. Construír o número executado.
  • $ build_status}. Estado no que rematou a compilación.
  • $ Tipo. Tipo seleccionado ao executar a compilación.
  • $ Sabor. Sabor seleccionado ao executar a compilación.
  • $ rama. Branch seleccionada ao executar a compilación, se ninguén foi elixido, aparece o nome de rama predeterminado.
  • $ Cambives}. Mostra os cambios feitos ao commit que activou a compilación.
    • % a: Comité.
    • % m: mensaxe do commit.
    • % d: Data do commit.
    • % r: número de comisión.

Isto producirá un correo electrónico como o que se mostra a continuación. Imos obter o .APK xerado con facilidade.

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *