En este artículo, traigo a su atención las instrucciones para instalar y configurar TeamCity para automatizar el ensamblaje y las pruebas de proyectos de Android en Windows.También prestaré atención a las características de configuración del entorno para el proyecto de Android (que encontré en el proceso de investigación) y a varios tipos de cosas que pueden ayudar a facilitarle la vida al probador y desarrollador novato.Objetivos:
Al actualizar el código del proyecto, debe ocurrir lo siguiente:- Proyecto de construcción automática
- Ejecutar pruebas automáticas de la interfaz de usuario
- Exportar depuración y lanzamiento de archivos APK para pruebas manuales posteriores
- Notificar a todos los miembros del equipo de desarrollo de los resultados.
Plan:
- Instalar y configurar Java JDK
- Instalar y configurar Android SDK
- Establecer un gradle separado para la depuración
- Preparando un proyecto de Android
- Instalar TeamCity Server y Build Agent
- Configurar TeamCity Project → Compilar para la compilación del proyecto y obtener la APK de instalación
- Configure los pasos de compilación con las pruebas automáticas de IU
Parte principal
1. Instalación y configuración de Java JDKContrariamente a la creencia popular sobre la instalación de la última versión de Java, JetBrains en su sitio web oficial publica la versión recomendada del SDK de Java: enlaceInstala la versión recomendada: enlaceTambién instale Variables de entorno:JAVA_HOME
- ruta a la carpeta con SKD Java para usar CI.
Ejemplo:
C:\Java\jdk1.8.0_181
Mejor poner en variables del sistema.- Ruta: ruta a la carpeta con Java SKD para usar desde la línea de comandos.
Ejemplo:
C:\Java\jdk1.8.0_181\bin
mejor poner en variables de usuario.
Verificamos la instalación:en el CMD en cualquier directorio, ingrese: java -version
Java debería responder que es:
2. Instalar y configurar el SDK de AndroidNo instalaremos las herramientas del SDK de Android por separado. Android ha prohibido crear proyectos desde la línea de comandos. También será más conveniente depurar posibles errores si instalamos Android Studio de inmediato.Instale la última versión: enlaceTambién instale Variables de entorno:ANDROID_HOME
Ejemplo: C:\Users\1\AppData\Local\Android\Sdk
ANDROID_AVD_HOME
Ejemplo: C:\Users\1\.android\avd
Ruta:Ejemplo: C:\Users\1\AppData\Local\Android\Sdk\platform-tools\
- inicie las utilidades desde la consola por nosotros y CI.Comprobar: escriba CMD: adb --help
obtenga información sobre la versión actual y los comandos disponibles:
Ruta:Ejemplo: C:\Users\1\AppData\Local\Android\Sdk\emulator\
- Inicie el emulador desde la consola por nosotros y CI.Comprobación: escribimos CMD emulator -version
Obtenemos información sobre la versión actual:
3. Instalación de Gradle Gradleestá incluido en Android Studio, pero colocaremos otro para la depuración desde la consola.La versión no es importante, porque se supone que el proyecto se lanzará a través del contenedor Gradle.Sugiero instalar una versión similar a la utilizada en el proyecto, por ejemplo Gradle 3.3. Enlace .También instalamos Variables de entorno:GRADLE_HOME
- no hay necesidad, porque CI usará Gradle Android Studio.GRADLE_USER_HOME
Ejemplo: c:/gradle-cache
Actual para Windows Server, como sin él, durante el ensamblaje del proyecto, todas las bibliotecas Gradle descargadas se almacenarán enC:\Windows\System32\config\systemprofile\.gradle
CI adicional no podrá acceder a estos archivos.Ruta:C:\Gradle\gradle-3.3\bin
la ruta a la carpeta Gradle para un uso conveniente desde la línea de comandos.Comprobación: escribimos CMD gradle -v
. Recibimos información sobre la versión actual:
4. Preparación del proyecto de Android4.1. Crea un proyecto de prueba en Android Studio.Tipo de actividad: actividad de navegación inferior. Será útil más tarde para crear una prueba de IU.4.2. Desactive Gradle Daemon de forma continua, para que Gradle Daemon no se genere en CI:agregue el archivo gradle.properties:
add org.gradle.daemon=false
4.3. También agregamos al archivo .gitignore
(a su gusto) para que no queden archivos adicionales en VCS. 4.4. Cree un almacén de claves (o use uno existente) en la carpeta del proyecto. Enlace ..gradle
.idea
/build/
local.properties
4.5. Agregue enlaces al almacén de claves a Gradle para que podamos construir un APK completo.Ejemplo:android{
... //
signingConfigs {
release {
storeFile file("keystorefile.jks") //
storePassword "Password" //
keyAlias "android" // keyAlias,
keyPassword "Password" // APK
}
}
... //
buildTypes {
release {
... //
signingConfig signingConfigs.release // APK
}
}
}
4.6. Para probar el estado del sistema, armaremos un nuevo proyecto desde la línea de comando. Ingrese en CMD:cd < >
por ejemplo: C:\Users\1\Documents\GitHub\Command2
vaya al proyecto.Ingrese: Estamosgradlew assembleDebug
esperando la finalización de la asamblea.Si todo está bien, obtenemos el resultado CONSTRUIR CON ÉXITO.
Vamos a la carpeta del proyecto: app\build\outputs\apk\debug
contiene un nuevo archivo APK que se puede instalar en el dispositivo y verificamos si todo funciona.4.7. También verificaremos si se lanzan las herramientas SDK y el administrador AVD.4.7.1. Inicie Android Studio y cree un emulador. Por supuesto, puede crearlo en la línea de comandos, pero tenemos el shell de la interfaz de usuario instalado, es un pecado no usarlo.Herramientas → Administrador AVD:
la versión SDK del emulador creado debe ser al menos tan grande como nuestro proyecto SDK.4.7.2. Creó un emulador. Vamos a ver su lanzamiento desde la consola. Ingresamos en la línea de comando:start /min emulator -avd < >
Ejemplo:start /min emulator -avd Pixel_2_API_25
Tenga en cuenta que usamos una función /min
para iniciar el emulador en segundo plano. De lo contrario, no habría permitido ingresar nuevos comandos en el CMD.El dispositivo se está ejecutando:
4.7.3. Verificamos la instalación del APK recopilado.Entramos en la CMD:adb install <path_to_apk>
Ejemplo: Conadb install C:\Users\1\Documents\GitHub\Command2\app\release\app-release.apk
éxito:
4.7.4. Verificamos el lanzamiento del APK instalado.Entramos en la CMD:adb shell monkey -p < > -c android.intent.category.LAUNCHER 1
Ejemplo: Laadb shell monkey -p com.panarik.command -c android.intent.category.LAUNCHER 1
aplicación comenzó:
4.7.5. Subimos el proyecto a un repositorio remoto, por ejemplo, a GitHub. Compruebe si se descargará el proyecto:instale Git BASH (si usamos Git VCS). Enlace .Clonamos el proyecto desde un repositorio remoto. Ingrese en la consola Git BASH:git clone < .git>
Ejemplo:git clone https://github.com/panarik/Command2.git
Vemos el resultado. El proyecto se copió a una carpeta local:
todo está listo para instalar y configurar TeamCity. ¿Por qué estamos haciendo ejercicios con la línea de comando y no instalando inmediatamente TeamCity? Será mucho más conveniente asegurarse de antemano de que el proyecto está funcionando, de modo que en el futuro será más fácil localizar posibles errores en la etapa de construcción en TeamCity.5. Instalación de TeamCity Server y Build AgentNo describiré el proceso de instalación en detalle. Está en la guía oficial y en muchas otras fuentes. Puerto del servidor de TeamCity Propongo configurar no estándar, para que sea más difícil calcular los escaneos de puertos.6. Configuración de TeamCity Project → BuildEn la configuración general, solo necesita establecer la ruta a la salida del APK:Ejemplo:app\build\outputs\apk\release\app-release.apk
6.1. Configuración de TeamCity VCS RootsTodo es estándar. En nuestro proyecto, usamos Git, por lo que lo ingresamos y un enlace al repositorio remoto. Ejemplo:https://github.com/panarik/Command2.git
6.2. Configuración de compilación de TeamCityAgregue un paso de compilación, que compilará el proyecto y mostrará el APK. En nuestro proyecto usamos Gradle.Ingrese en el campo Tareas de Gradle:clean build assembleDebug --no-daemon
(--no-daemon por si acaso, y esto debería funcionar como un subíndice del archivo que hicimos en la sección 4.2)
Haga clic en Ejecutar, obtenemos el APK.7. Configuración de pasos de compilación conpruebas automáticas de IU Llegamos a la parte más interesante, a saber, el lanzamiento automático de pruebas de IU.Los pasos se iniciarán utilizando archivos .BAT. Es mucho más conveniente escribir código, cambiarlo sobre la marcha sin tener que ir a la interfaz de usuario de TeamCity, etc.7.1. Primero, cree un paso de compilación con el emulador en ejecución.Puede hacer que la URL a BATnik sea completa, por conveniencia, hice Environment en TeamCity BAT_FILES
con la ruta a la carpeta con BATniks:
escribimos el código de inicio del emulador en el archivo.Ejemplo:start /min "emulator" /D "C:\Users\1\AppData\Local\Android\Sdk\emulator" emulator.exe -avd Pixel_2_API_25 -no-snapshot-save -no-boot-anim
Lista de comandos y parámetros en un sitio externo : enlace .7.2. Cree un paso de compilación con una pausa mientras se carga el emulador. Puede registrar inmediatamente el primer paso en .BAT, pero será más claro.Un ejemplo de un equipo de este tipo que ha espiado en Internet:adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82'
desde la interfaz de usuario se verá así:
Lista de todos los equipos en el sitio externo : enlace.7.3. Ejecute la pruebaTambién desde la línea de comando. Todo es individual aquí.Comando de ejemplo:gradlew connectedDebugAndroidTest
7.4. Paramos el emulador.Comando de ejemplo:adb -s emulator-5554 emu kill
proceso completado.También puede cargar el informe en un paso separado. Por defecto, se guarda en la carpeta del proyecto.¡Muchas gracias por su atención!Si alguien tiene consejos para mejorar el código de pasos y sugerencias para mejorar, le agradeceré mucho.