Automatizando nuestros despliegues en Bitrise para nuestros proyectos iOS
Este artículo es uno de los que más me ha costado, sobre todo por entender la herramienta de Bitrise pero con el paso del tiempo me ha parecido un plataforma absolutamente impresionante, y además uno de los principales problemas que suele encontrar un equipo de desarrolladores que trabaja en un mismo proyecto es el hecho de que, cuando se fusiona el código de cada uno de ellos, se pueden producir conflictos entre el código de distintos desarrolladores, errores, etc., lo que hace que esto proceso lento. Para solucionar este punto, entra en acción la Integración y distribución continua para automatizar el despliegue de aplicaciones. En este artículo vamos a aprender cómo automatizar el despliegue de aplicaciones iOS con Bitrise .
Introducción
Aclararemos algunos conceptos qué son la Integración Continua (CI), la Entrega Continua (CD) y la Implementación Continua (CD), y cómo se podría hacer con una nueva herramienta de GitHub : Acciones de GitHub, ésta última parte ya he escrito anteriormente un artículo, lo podrías ver aquí.
En resumen:
- Integración continua. La integración continua (CI) permite que diferentes desarrolladores carguen y combinen cambios de código en la misma rama del repositorio con frecuencia. Una vez subido el código, se valida automáticamente mediante pruebas unitarias y de integración (tanto el código subido como el resto de componentes de la aplicación). En caso de error, esto se puede corregir de forma más sencilla.
- Entrega continua. En la Entrega Continua (CD) el nuevo código introducido y que ha pasado el proceso de Integración Continua se publica automáticamente en un entorno de producción (esta implementación puede requerir aprobación manual). Lo que se pretende es que el código del repositorio esté siempre en un estado que permita su implementación en un entorno de producción.
- Despliegue continuo . En Continuous Deployment (CD), todos los cambios en el código que han pasado por las dos etapas anteriores se implementan automáticamente en producción.
Uso de Bitrise
Existen numerosas herramientas para configurar y llevar a cabo todo el proceso de integración y distribución continua ( Jenkins , CircleCI , Visual Studio App Center …). En este caso veremos cómo funciona Bitrise .
Lo mas interesante de Bitrise es:
- Está diseñado específicamente para aplicaciones.
- La experiencia del usuario en el sitio web es muy buena.
- Le permite configurar fácilmente los flujos de trabajo.
- Permite implementar las compilaciones en Testflight y la App Store .
Bitrise es una herramienta de pago, pero hay una versión gratuita que podemos probar.
Creando una nueva aplicación en Bitrise
Vamos con las ingredientes de nuestra receta, lo primero una app que además de tener Test Unitarios pues que esté ubicado en un repositorio en la nube, en este caso podemos usar GitHub, yo en mi caso, probaré la herramienta de Bitrise con una App que muestra los personajes de Marvel, es genial para este tipo de cosas, o otra que me encanta es tmdb, o la propia de apple, con estas tres API’s podéis realizar App’s interesantes y ademas realizar Test Unitarios para probar tu nivel, pongo un ejemplo de los Test desarrollados y seguimos con la configuración de Bitrise:
Bien!! ya tenemso test Unitarios y ya podemos seguir con nuestra configuracion, ahora vamos a tener que crearnos una cuenta en Bitrise
Podemos crearnos la cuenta gratis, pero hay que tener en cuenta que tendrás ciertas limitaciones, todo este trabajo de CI/CD debe pagarse, así que vamos a ello, una vez que creas tu cuenta, tienes la posibilida de expandir tu crédito, pero para comenzaar es más que sificiente.
Una vez que tienes la cuenta creada vamos a crear una nueva App
Bien!, aqui una vez damos a la opcion de Add New App on Web UI, se nos despliega un flujo de trabajo super fácil de seguir, lo primero es seleccionar si nuestra app sera publica o privada, vamos con las caidas de facebook, Instragram y whatsapp, la privacidad es lo mas importante ente todo, asi que seleccionamos una app privada y esto nos habilita posteriormente al tipo de recurso respecto de nuestro proyecto, sean Github, Bitbucket, GitLab o manualmente, y esta será la opcion que escojamos (Other/Manual) y solo debemos pagar la ruta del reopositorio con la conexión ssl, por ellos Bitrise requiere que nos comuniquemos de manera privada con nuestro repositorio, en este caso, lo haremos con GitHub.
Una vez que le damos Next le debemos habilitar un token de autenticación y éste lo pegamos en los ajustes de GitHub en la seccion de SSH Keys.
De hecho fijaros que hasta Bitrise, nos da un boton de acceso inmediato.
Bien!, ya esta creada nuestra conexión con GitHub, ya podemos continuar con la configuración
Este proceso se hace solo, Bitrise despliega todas sus herramientas y te muestra has los log’s y si todo sale bien, inmeditamente después os muestra un panel de conexión y define el tipo de exportación de nuestra .ipa, si es en modo Ad-hoc, Markets, developer o enterprise, en este caso, en modo develop es una buena opcion para continuar.
Una vez que terminas esta parte te pregunta si estas conforme con la información, confirmamos y listo!
Por último un icono identificativo de tu App, y le das al botón y con esto se lanza nuestra primera construcción a través de Bitrise.
Debe saliros algo parecido, ya que se está ejecutando la compilación de nuestro proyecto, y nos mueestra el flujo de trabajo que hace en una consola de Log’s, simplemente espectacular.
En el Apartado Workflows os mostrará los pasos que ha llevado Bitrise para realizar su trabajo, hay que tener en cuenta muchos aspectos tecnicos de Bitrise, en el panel de workflow se podrá acceder al apartado de certificados, entornos de compilación según vuestras politicas de branching y algio super importante, el bitrise.yml, es el lugar en donde se puede personalizar el pipeline de vuestro proyecto, de momento es un pipeline, que te ponde Bitrise, para comenzar, pero está claro que debeis contar con un ingeniero experto DevOps para personalizar vuestro pipeline.
Podrás explorar la herramienta y os dará mucha información, como el flujo entero del trabajo.
Venga ánimo que la CI/CD hya que implementarlo ya en nuestros proyectos.