Closed zkodah closed 5 months ago
Un workflow es un conjunto de procesos, herramientas y prácticas que se utilizan para gestionar el ciclo de vida de desarrollo, pruebas, implementación y operaciones de software en un proyecto. Este flujo de trabajo tiene como objetivo principal mejorar la colaboración entre equipos, acelerar la entrega de software y garantizar su calidad y fiabilidad.
Un workflow puede abarcar varias areas, siendo típicamente las siguientes:
Existen diversas herramientas para facilitar el trabajo que se pueden implementar en los flujos de trabajo dependiendo de la etapa del ciclo de vida del software en la que nos encontremos. Por ejemplo para la etapa de planificación tenemos herramientas como Trello, Teams, Lucidchart, entre otras, que facilitan la colaboración en esta etapa tan importante como lo es la planificación de un proyecto.
En esta ocasión se van a destacar diversas herramientas que nos permitan optimizar nuestro flujo de trabajo enfocándonos en las etapas de desarrollo y de CI/CD, teniendo en cuenta el stack tecnológico en el cual se esta desarrollando el proyecto.
Codemagic es un producto de integración continua y Entrega continua (CI/CD) basado en la nube diseñado específicamente para desarrolladores móviles que construyen aplicaciones con Flutter, React Native, iOS nativo, Android nativo, Unity, Kotlin Multiplatform Mobile y Ionic.
Codemagic automatiza el proceso de construcción, pruebas e implementación de aplicaciones en tiendas como Apple App Store, Google Play, Microsoft Store y Huawei App Gallery. Las nuevas builds se pueden activar cuando el código se pushea al repositorio, se añaden etiquetas o cuando las pull request se fusionan. Se pueden configurar múltiples flujos de trabajo para que la aplicación esté disponible para el equipo de desarrollo, distribuir la última compilación al equipo de pruebas o publicar la aplicación a producción.
Tiene un free tier la cual permite 500 minutos de build gratis por mes, luego comienza a regir el pricing pay as you go, con costos de:
GitHub Actions es una característica integrada en la plataforma GitHub que permite automatizar flujos de trabajo directamente en los repositorios de código. Con GitHub Actions, se puede definir y ejecutar flujos de trabajo personalizados para realizar tareas automatizadas, como pruebas de código, compilación de software, despliegue de aplicaciones y mucho más.
GitHub actions permite crear un flujo de trabajo para cada evento de GitHub como los push, la creación de issues, o una nueva release de la aplicación.
Puede correr contenedores para diferentes sistemas operativos (Linux, macOS, Windows, ARM. Es compatible con cualquier lenguaje de programación, se pueden crear matrices de flujos de trabajo que prueben simultáneamente a trabes de multiples sistemas operativos y versiones en tiempo de ejecución.
Ademas, cuenta con multiples workflows que son impulsados por la comunidad,
Fastlane es una herramienta de código abierto utilizada principalmente para automatizar y agilizar el proceso de desarrollo y distribución de aplicaciones móviles para iOS y Android. Es una herramienta popular en el ecosistema de desarrollo de aplicaciones móviles, especialmente para proyectos que utilizan tecnologías como Flutter, React Native, Xamarin, y más.
Algunas de las características y funcionalidades principales de Fastlane incluyen:
Fastlane es la opción que nos proporciona la propia documentación de Flutter para realizar el despliegue continuo (CD). Si bien esta no es una plataforma de CI, se puede integrar fácilmente con otras herramientas populares para la implementación continua, como la que nos proporciona el mismo GitHub
Si bien, Codemagic es la herramienta mas completa enfocada al uso y desarrollo con flutter que es nuestro stack tecnológico, esta no es una herramienta open source, por lo que dependiendo de nuestro consumo podría incurrir en un gasto innecesario.
Así que para este caso, lo mas optimo seria utilizar las funcionalidades que nos ofrece GitHub, al ser de propósito general se puede aplicar a un mayor casos de usos aportando mas valor a nuestro perfil como profesionales no tan solo enfocado en Flutter, ademas, como ya se tiene el proyecto estructurado en GitHub, es mas provecho darle utilidad a la integración que GitHub actions tiene con los repositorios y el proyecto en su totalidad trabajado en GitHub.
También, hay que tener en cuenta la posibilidad de tener que incluir Fastlane para realizar una correcta gestión de los certificados de firma y perfiles de aprovisionamiento necesario para la distribución de la aplicación.
Descripción
Se desea tener la documentación extensiva sobre que es un Workflow
Tareas
Fecha de Vencimiento
Se ha definido la fecha de entrega para el día 27-04-2024