Publicaciones sobre Notas

Gitlab runners en windows para integración y entrega continua

Desde hace algo más de un par de años, llevo usando Runners de Gitlab para desplegar y realizar test de algunos proyectos que Desarrollo. Todo comenzó como una prueba con proyectos simples, como Music DL y socializer. La idea de los runners es utilizarlos para completar el Ciclo de CI/CD (esto es, integración y entrega continua). En términos generales, esto hace posible que cada que se cumpla una condición específica dentro del repositorio de código fuente (por ejemplo, crear una etiqueta para cada nueva versión, enviar un commit en un repositorio), un Runner se encargue de ejecutar una serie de comandos o scripts para ejecutar las unidades de prueba del proyecto, o incluso pueda compilar, empaquetar y distribuir directamente versiones listas para los usuarios. Esto es lo que hemos venido usando en TWBlue para las actualizaciones Snapshot desde hace un par de años, lo que al final fue un factor importante al decidir acortar el ciclo de desarrollo de las versiones de la aplicación. Personalmente, además, me gusta que un runner ejecute todas las tareas, ya que eso nos ayuda a nosotros a mantener nuestros equipos personales o de trabajo fuera de la distribución de TWBlue. Como se trata de proyectos Python, en ocasiones los módulos que nos ayudan a generar versiones distribuibles (como por ejemplo, cx_freeze) incluyen paquetes incorrectamente que no se usan en la aplicación. Esto no siempre puede controlarse apropiadamente y en ocasiones, una versión de TWBlue generada en el pasado incluía más o menos módulos extras e innecesarios según en el equipo de quién se habían construido las versiones distribuibles. Con un runner creando cada versión de nuestro software, nos aseguramos de tener una máquina que solo lleve instaladas las herramientas necesarias para lo que se va a construir, y también proporcionamos a todo quien quiera revisarlo, una lista de pasos reproducibles que necesitan ser ejecutados para crear una copia idéntica de nuestras versiones. Finalmente, el hecho que todo esto ocurra de manera completamente automática nos hace tener qué preocuparnos menos en prepararlo todo y ejecutar cada paso manualmente en nuestras máquinas: Un desarrollador solo tiene qué enviar un commit o crear la etiqueta adecuada, y el runner probará, construirá y subirá los ejecutables a nuestro sitio ftp en cuestión de minutos.

Leer más…