Configuración de Android GitLab CI. GitLab viene con una gran herramienta llamada … | Via Radhika Canopas | Canopas Software | Octubre 2021
Configurar el entorno
¡Súbete las mangas y nos mancharemos las manos! Necesitamos configurar el entorno y descargar e instalar algunos paquetes de software para ejecutar el SDK.
nos dejaUna especie deEche un vistazo rápido a la imagen de Docker
// Dockerfile
FROM openjdk:8-jdk
RUN apt-get --quiet update --yes &&
apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1 curl && # download Android SDK tools
wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip &&
unzip android-sdk.zip -d /android_sdk &&
export ANDROID_HOME=/android_sdk &&
export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin &&
# install Android SDK & dependencies
echo y | sdkmanager "platform-tools" "platforms;android-26" "build-tools;26.0.2" &&
echo y | sdkmanager "extras;android;m2repository" &&
echo y | sdkmanager "extras;google;google_play_services" &&
echo y | sdkmanager "extras;google;m2repository" &&
# install pip for grip export README.md to html
echo y | apt-get update &&
echo y | apt-get install python-pip &&
pip install grip
De Representa la imagen base.Para construir una aplicación de Android, usaremos openjdk: 8-jdk.
Luego descargue la herramienta SDK de Android y use sdkmanagaer Descargue el SDK requerido. La versión del SDK o la biblioteca depende de las necesidades de la aplicación.
Ahora, agreguemos un archivo de configuración de Gitlab CI .gitlab-ci.yml
Realice todas las pruebas unitarias en el directorio raíz de nuestro proyecto de Android.
image: your-docker-image-namestages:
- testcache:
paths:
- .gradle/wrapper
- .gradle/cachestestDebug:
stage: test
before_script:
- chmod +x ./gradlew
- export GRADLE_USER_HOME=$PWD/.gradle
script:
- ./gradlew test
fotografía: Imagen de Docker utilizada para ejecutar trabajos de CI.
Cache: Agregue el caché a nuestra compilación, cada trabajo en caché descargará y extraerá el caché al principio y cargará el caché al final.
escenario: Definir nuestra secuencia de trabajo. Los trabajos de la misma fase se ejecutan en paralelo.
before_script: Se utiliza para configurar las cosas antes de que comience el trabajo real.En nuestro ejemplo, establecemos GRADLE_USER_HOME
Evite usar la ruta completa de Gradle y haga que gradlew sea ejecutable.
texto: Script de shell ejecutado por Gitlab Runner. Aquí, ejecutamos todas las pruebas unitarias.
Revisa la pelusa
stages:
- testcache:
paths:
- .gradle/wrapper
- .gradle/cacheslintDebug:
stage: test
before_script:
- chmod +x ./gradlew
- export GRADLE_USER_HOME=$PWD/.gradle
script:
- ./gradlew lintDebug
Compila el APK de depuración
Agreguemos otra etapa para construir el apk de depuración para pruebas manuales.
stages:
- buildbuild_assembleDebug:
stage: build
before_script:
- chmod +x ./gradlew
- export GRADLE_USER_HOME=$PWD/.gradle
script:
- ./gradlew assembleDebug
- mv app/build/outputs/apk/debug/*.apk . //It will move //generated apk to the root directoryartifacts:
expire_in: 1 month
paths:
- MyApplicatoion*.apk
Reliquias culturales: Defina los archivos y directorios del trabajo adjuntos al trabajo después de que se complete la ejecución.
Vencimiento: Indica el ciclo de vida del artefacto.
Vamos a armarlo
image: jangrewe/gitlab-ci-androidstages:
- test
- buildcache:
paths:
- .gradle/wrapper
- .gradle/cachesbefore_script:
- chmod +x ./gradlew
- export GRADLE_USER_HOME=$PWD/.gradletestDebug:
stage: test
script:
- ./gradlew testlintDebug:
stage: test
script:
- ./gradlew lintDebugbuild_assembleDebug:
stage: build
script:
- ./gradlew assembleDebug
- mv app/build/outputs/apk/debug/*.apk . //It will move //generated apk to the root directory artifacts:
expire_in: 1 month
paths:
- MyApplicatoion*.apk
Ejecute su configuración
Ahora es el momento de enviar un código y verificar su canalización. Se parece a esto.
Completamos una breve introducción a la configuración de CI para ejecutar pruebas unitarias, verificaciones de pelusa y compilar apk de depuración. Podemos hacer más cosas usando CI, como integración holgada, implementación automática en Play Store, carga en Dropbox, etc.
Gracias por leer 🎊🍷