Cómo Agregar tu Primer Trabajo de Android a Jenkins

Nuevo: Acabamos de publicar un nuevo libro electrónico: la Guía de inicio de Jenkins, que contiene toda la información de esta serie de cuatro publicaciones y más. Dirígete a nuestra página de Recursos para descargar.

En caso de que se haya perdido nuestro primer par de publicaciones de esta serie, o si no está seguro de qué es Jenkins o CI, regrese y lea: ¿Qué es Jenkins y Por qué debería usarlo?

Esta es una guía paso a paso sobre cómo configurar Jenkins para crear y probar aplicaciones de Android. En esta demostración, usaremos una aplicación de ejemplo que usa el SDK Bugfender en Android. Obviamente, querrás usar tu propia aplicación o biblioteca para Android. Los pasos para agregar tu propio proyecto de Android a Jenkins serán los mismos.

¿Crear aplicaciones iOS? Esté atento al próximo artículo de esta serie que se publicará próximamente.

En primer lugar, deberá preparar la máquina para compilar y ejecutar aplicaciones de Android. Si aún no ha instalado Jenkins, puede seguir los pasos de la publicación anterior para instalar Jenkins en su servidor.

Configurar Compilaciones de aplicaciones de Android en Jenkins

Paso 1: Instalar Java JDK

sudo apt-get install java-8-openjdk

Paso 2: Instalar Android SDK

Vaya a https://developer.android.com/studio/index.html#downloads y tome el enlace que aparece en la tabla para Obtener solo las herramientas de línea de comandos > Linux. No descargues nada, solo copia el enlace.

sudo apt-get install unzip# here you paste the link you grabbed in the developer.android.com sitesudo -iu jenkins wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zipsudo -iu jenkins mkdir android-sdksudo -iu jenkins unzip sdk-tools-linux-3859397.zip -d android-sdk# this step is important to accept the Android SDK licenseyes |sudo -iu jenkins android-sdk/tools/bin/sdkmanager --licenses

Ser Un Superhéroe

Defenderse de los errores y mantener protegidos a los usuarios.

Uso Bugfender Gratis Hoy

Paso 3: Configurar Jenkins

A continuación, inicie sesión en Jenkins y configure el SDK de Android que acaba de instalar:

Abrir https://your-ci-server-name.com en su navegador. Verás algo como esto:

  • Vaya a Administrar Jenkins > Configurar sistema
  • Marque»Variables de entorno»
  • Agregar nombre: ANDROID_HOME
  • Agregar valor: /var/lib/jenkins/android-sdk
  • Haga clic en «Aplicar» y luego en «Guardar»

Paso 4: Crea un trabajo de Android

Ahora vuelve a la página de inicio. Haga clic en Nuevo elemento. Introduce el nombre de tu proyecto y selecciona «Proyecto estilo libre».»

Paso 5: Descarga de tu código en Jenkins

A continuación, debes agregar un enlace a tu repositorio para que Jenkins pueda descargar tu código. Especifique la URL de Git de su repositorio en la sección Administración de Código fuente. Como se mencionó, vamos a usar este repositorio de ejemplo: https://github.com/bugfender/BugfenderSDK-android-sample.git.

Si tiene un repositorio Mercurial o Subversion, funcionan exactamente de la misma manera. Si tienes un repositorio privado, también puedes crear claves SSH para acceder a tu repositorio con el protocolo git.

Paso 6: Configuración de disparadores de compilación de Jenkins

También puede especificar Disparadores de compilación que compilarán el proyecto automáticamente para usted. Es mejor usar un gancho para activar compilaciones automáticamente cuando alguien envía código al repositorio.

Para BitBucket, Gitlab y la mayoría de los proveedores de Git, puede usar la opción «Compilación de disparadores de forma remota». Esto le dará una URL que puede configurar como un webhook en su proveedor para iniciar automáticamente una compilación.

Para los usuarios de GitHub, lo más fácil es encontrar e instalar el «complemento de GitHub» (en Administrar Jenkins > Administrar complementos) y aparecerá una opción específica de GitHub. Esto instalará el webhook por ti.

Paso 7: Compilar

Una vez que tenga el código fuente en Jenkins, es hora de compilar. Si tu proyecto tiene un envoltorio Gradle, eso es lo que debes usar. En nuestro caso, crearemos un paso de compilación de script de Gradle Invoke como este:

Si tiene un proyecto basado en Ant, también hay un paso de compilación Invoke Ant o, para una flexibilidad máxima, puede usar el paso de compilación Execute shell.

Pruebe su compilación presionando «Guardar»

Y eso es todo. Tu primer proyecto de Android se ha añadido a Jenkins. Ahora es posible que desee considerar acelerar Gradle y configurar pruebas automatizadas en Jenkins.

Comience a corregir errores Más rápido Ahora de forma gratuita

Bugfender es el mejor registrador remoto para aplicaciones móviles.

Registrarse

Acelerar Gradle (opcional)

Si estás ejecutando compilaciones basadas en Gradle, puedes ahorrar tiempo de compilación ejecutando Gradle como demonio. Para que funcione, haga lo siguiente:

mkdir -p /var/lib/jenkins/.gradleecho org.gradle.daemon=true | sudo -iu jenkins tee -a /var/lib/jenkins/.gradle/gradle.properties

Ejecución de pruebas unitarias

Si quieres ejecutar pruebas unitarias, puedes hacerlo añadiendo otro paso de compilación con la tarea Gradle de pruebas, como este:

Ejecución de pruebas de integración

Para configurar pruebas de interfaz de usuario, deberá ejecutar un emulador. A pesar de que Jenkins tiene un plugin de Emulador de Android, hemos encontrado que no se ha actualizado y ya no funciona con las últimas versiones del SDK de Android. Aquí está nuestra solución alternativa sugerida:

Paso 1: Descargue el emulador. Para enumerar los SDK disponibles, ejecute:

sudo -iu jenkins android-sdk/tools/bin/sdkmanager --list --verbose

Nota rápida sobre la selección de la imagen adecuada para usted: las imágenes basadas en x86 se ejecutan más rápido, pero también necesitan aceleración de hardware. Es posible que tenga que habilitar la aceleración KVM (sudo modprobe kvm) en su servidor y su servidor no puede ser una máquina virtual. Por esta razón, elegimos una imagen de BRAZO, que funciona más lento pero funciona.

Paso 2: En nuestro caso, estamos buscando ejecutar nuestra aplicación en Android SDK nivel 25, por lo que system-images;android-25;google_apis;armeabi-v7a parece adecuado, luego lo instalamos de esta manera:

sudo -iu jenkins android-sdk/tools/bin/sdkmanager 'system-images;android-25;google_apis;armeabi-v7a'

Paso 3: Una vez instalado, creamos un Dispositivo Virtual Android (una instancia de emulador) con él:

echo no | $ANDROID_SDK_ROOT/tools/bin/avdmanager -v create avd --force --package 'system-images;android-25;google_apis;armeabi-v7a' --name Android25 --tag google_apis --abi armeabi-v7a

Paso 4: Luego usamos Supervisord para ejecutar el emulador de Android como un servicio del sistema, siempre en segundo plano. Para instalarlo:

sudo apt-get install supervisor

a Continuación, cree un archivo de configuración en /etc/supervisor/conf.d/emulator.conf:

command=/var/lib/jenkins/android-sdk/emulator/emulator -avd Android25 -no-window -noaudio -no-boot-anim -accel on -ports 5556,5557autostart=trueuser=jenkinsenvironment=ANDROID_SDK_ROOT=/var/lib/jenkins/android-sdk

Paso 5: Una vez hecho esto, reinicie supervisord para aplicar los cambios:

sudo service supervisor restart

El emulador debe comenzar en segundo plano. Puede tardar entre 1 y 2 minutos. Verá que el dispositivo emulador aparece en la lista de dispositivos cuando esté listo:

sudo -iu jenkins android-sdk/platform-tools/adb devices

Paso 6: En el trabajo Jenkins, agregue un paso de compilación de ejecución de shell como este:

Código:

ANDROID_SERIAL=emulator-5556# wait for emulator to be up and fully booted, unlock screen$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while ]; do sleep 1; done; input keyevent 82'./gradlew connectedAndroidTest

Pasos siguientes

Hay más opciones, como ejecutar un emulador de Android, instalar la aplicación y ejecutar varias pruebas en ella.

Además, hay algunos complementos realmente interesantes con los que puedes jugar:

  • Plugin de emulador de Android — Por el momento, este plugin no funciona correctamente con el SDK de Android más reciente. Pero nuestra mejor suposición es que lo arreglarán y volverá a funcionar pronto. Como alternativa, puede usar una versión anterior del SDK.
  • Complemento de firma de Android
  • Complemento de Editor de Android de Google Play

Para más publicaciones de esta serie, echa un vistazo:

  • ¿Qué Es Jenkins y Por Qué Debería Usarlo?
  • Cómo instalar Jenkins en Ubuntu
  • Cómo Agregar su Primer trabajo de iOS a Jenkins

Deja una respuesta

Tu dirección de correo electrónico no será publicada.