Como implementar CI/CD en React Native en Play Store con Buddy

Implementar Continuous Integration/Continuous Deployment (CI/CD) en React Native para la Play Store con una herramienta como Buddy puede traer varios beneficios, desde la automatización del flujo de trabajo, la reducción de errores al realizar esta tarea de forma manual, la rápida retroalimentación y automatizar el despliegues frecuente de cambios, además de poder contar con versionado y trazabilidad de todos los cambios realizados.

Implementar CI/CD con herramientas como Buddy en un proyecto de React Native para la Play Store puede mejorar la eficiencia del desarrollo, reducir errores y acelerar el tiempo de lanzamiento de nuevas versiones de la aplicación.

¿Qué es CD/CI?

CI (Continuous Integration)

La integración continua es una práctica que consiste en hacer integraciones automáticas de un proyecto lo más a menudo posible para así poder detectar fallos cuanto antes. Entendemos por integración la compilación y ejecución de pruebas de todo tu proyecto.

CD (Continuous Delivery)

La entrega continua es un enfoque en que el equipo de desarrollo produce cambios en ciclos cortos ‘agile’, asegurando que el software puede ser liberado en cualquier momento, de forma confiable.​ Apunta a la construcción, prueba, y liberación del software de forma más rápida y más frecuente posible.

Objetivo principal CI/CD:

El objetivo principal es crear un flujo de trabajo automático que verifique, genere el proyecto, realice las pruebas unitarias y al final genere una compilación completa sin la necesidad de que el desarrollador participe, simplemente se preocupe en garantizar que todo ha funcionado correctamente.

¿Qué es buddy work?

Buddy es una herramienta de trabajo de CD/CI online que facilita la implementación al Play Store entre otros como Apple Store que veremos próximamente. En el mercado existen otras herramientas CI/CD como circleci, bitbucket o Jenkins que se utilizan para la implementación. En este ejemplo nos enfocaremos en buddy, por la facilidad del manejo que tiene en la compilación al usar el CI y la facilidad de integrar el CD en Play Store. Una vez publicada tu APP también permite notificar en múltiples canales como email, slack, JIRA, entre otros, conforme la APP (aab o apk) se ha subido al Store, permitiendo avisar que el proceso terminó de manera satisfactoria.

Desplegar tu APP en un entorno CI/CD con Buddy

Con Buddy, puedes crear una canalización que cree, pruebe e implemente aplicaciones React Native al enviarlas a cualquier entorno Git. La configuración te llevará unos 10-15 minutos.

Ejemplo de canalización de React Native

1. Selecciona tu repositorio Git

Buddy es compatible con todos los proveedores de alojamiento Git populares, incluidos GitHub, Bitbucket y GitLab. También puedes usar tu propio servidor Git privado o subir el código directamente en Buddy.

Proveedores de Git compatibles

2. Agrega una nueva canalización de entrega

Ingresa el nombre de la canalización, selecciona el modo de activación ‘trigger’ y define la rama desde la cual Buddy obtendrá el proyecto:

Agregar una nueva canalización con Buddy

Modos de disparo ‘trigger’

  • Manualmente (se activará al hacer clic de forma manual): recomendado para producción
  • En eventos (automático): recomendado para Desarrollo
  • Programado (en el intervalo de tiempo): recomendado para la puesta en escena/pruebas de Test

Los triggers basados ​​en eventos te permiten ejecutar canalizaciones cada vez que se realiza una inserción en cualquier rama del repositorio, o cada vez que se crea o elimina una rama, etiqueta o PR.

En el modo de activación de canalización de eventos

3. Agregar acciones

Buddy te permite elegir entre docenas de acciones predefinidas. En este ejemplo, agregaremos 4 acciones que realizarán las siguientes tareas:

  • Crear y probar la aplicación React Native: descarga dependencias (npm, yarn, etc.), ejecuta pruebas, compila activos (tareas npm, paquete web, etc.)
  • Carga el código al servidor junto con los activos compilados
  • Reinicia la aplicación
  • Enviar una notificación

3.1 Configura tu aplicación React Native

Busca y haz clic en React Native en la lista de acciones para agregarlo a la canalización:

Lista de Acción

Buddy te permite seleccionar la versión de Node que desees utilizar en la compilación de tu proyecto React Native:

Configurando la aplicación React Native

3.2 Compilar la aplicación React Native

Aquí puedes determinar los comandos a ejecutar. Los comandos predeterminados son:

Comandos predeterminados de compilación de acciones de React Native

3.3 Firma la solicitud (APK)

El siguiente paso es agregar la acción Firmar APK . Selecciona la ruta del APK y proporciona al almacén de claves la contraseña:

Configurando Sign APK

3.4 Implementar APK en Google Play

El paquete ya está listo para la implementación. Selecciona Google Play Publish APK para continuar:

Acción de Google Play

Al agregar la acción, puedes elegir qué y dónde se debe cargar:

Configurar la acción de Google Play

3.5 Enviar notificación

Puedes configurar Buddy para que envíe un mensaje al equipo de desarrollo después de la implementación. En este ejemplo usaremos Slack :

Acciones de notificación

Si agregas esta acción en el ‘On Failure’, Buddy sólo enviará el mensaje si algo sale mal en la compilación o implementación.

Notificación en caso de error

Conclusión

Hemos repasado cómo automatizar todo tu proceso de entregar un proyecto React Native directamente al Play Store. Con la entrega continua aplicada, ahora puedes concentrarte en lo que es realmente importante: ¡desarrollar aplicaciones increíbles!

Ten en cuenta que este artículo es sólo un breve ejemplo de lo que CI/CD puede hacer. Puede crear canalizaciones adicionales para entornos de prueba y producción, integrarlas con otros servicios como AWS, Google, Azure, etc, para activar pruebas en solicitudes de extracción, crear imágenes de Docker y enviarlas al registro; las posibilidades son ilimitadas.

Si deseas que te ayudemos a automatizar los despliegues de tus proyectos, no dudes en contactarnos,  ¡estaremos encantados de ayudarte!

Referencias:

· ¿Qué es CI/CD?

· CI/CD for React Native

· BUDDY WORK(CD/CI)