¿Debería usar las acciones de Github para la integración continua (CI)? – CloudSavvy TI

La integración continua es crucial para cualquier repositorio activo que necesite creación y pruebas de rutina. Github admite canalizaciones de CI en forma de Github Actions: compilaciones que se ejecutan en la nube, automáticamente, con solo un poco de configuración.

¿Qué es la integración continua?

Si bien algunas bases de código, como ciertas aplicaciones web, se pueden implementar directamente desde sus archivos de origen, otras requieren procesamiento adicional, compilación y, lo que es más importante, pruebas unitarias. Estas compilaciones pueden ser complicadas e incluso consumir muchos recursos en el caso de lenguajes como C++.

La integración continua es el proceso de automatización de pruebas y creación de nuevas confirmaciones para su código fuente. Comúnmente, esto se usa con software como Jenkins que se ejecuta en un «servidor de compilación» que manejará la compilación real.

La compilación de código automatizada es un servicio tan útil para los equipos de software que ahora lo ofrecen los proveedores de la nube, incluido Github, donde se integra muy bien con el resto de sus servicios.

¿Qué son las acciones de Github?

Acciones de Github son tareas basadas en la nube que se pueden usar para automatizar su repositorio. Por lo general, se usan para ejecutar compilaciones automatizadas para nuevas confirmaciones o versiones, lo que puede ser útil para las pruebas de software continuas. Sin embargo, también se pueden usar para la automatización no relacionada con CI, como trabajar con problemas y solicitudes de extracción, ejecutar cron trabajos o activar comandos basados ​​en acciones en su cuenta.

En lo que respecta a CI, las acciones de Github son bastante útiles. La mayoría de las canalizaciones de CI requieren que configure un software complicado como Jenkins o utilice un servicio en la nube específico como AWS CodePipeline. Las acciones de Github son muy simples y solo requieren que confirmes un archivo de configuración para .github/workflows/ para habilitar una acción.

Además de eso, Github generalmente puede detectar qué tipo de proyecto está haciendo y ofrecer sugerencias para configuraciones de acción de su biblioteca de ejemplos. Por ejemplo, este proyecto de Java estaba listo y funcionando con compilaciones automatizadas en solo unos minutos con algunos ajustes menores para

Puede tener múltiples acciones en el mismo repositorio; por ejemplo, tal vez desee configurar compilaciones automatizadas para cada confirmación en el dev rama, pero solo desea compilaciones para cada nueva versión etiquetada en el master rama. Puede crear dos archivos YAML separados con diferentes criterios.

Si bien las acciones son muy útiles para realizar compilaciones y pruebas, también pueden ejecutar comandos y conectarse con otros servicios, lo que les permite automatizar también los procesos de entrega e implementación. Por ejemplo, podría tener una acción en el release branch tome cada nueva versión etiquetada y cárguela en sus servidores para su implementación.

De forma predeterminada, las compilaciones de Github Actions publicarán los artefactos de compilación (lo que haya generado el proceso de compilación) en un archivo zip para cada ejecución. Esto funciona bien si solo está ejecutando pruebas, pero si desea realizar una entrega automatizada, también puede configurarlas para publicar automáticamente nuevas versiones o enviarlas a un registro de paquete/contenedor como NPM o Docker Hub.

La configuración exacta de su repositorio variará según cuál sea su proceso de compilación, pero Github hace un buen trabajo al proporcionar ejemplos sólidos para comenzar, y la configuración general es prácticamente la misma. Si desea obtener más información sobre cómo comenzar con GH Actions, puede leer nuestra guía sobre cómo configurarlas.

Precios de acciones de Github

Afortunadamente, Github tiene el dinero para patrocinar software de código abierto, por lo que las acciones son completamente gratis para repositorios públicos. Puedes usarlos tanto como quieras o almacenar tantos artefactos de compilación como quieras; no hay un límite estricto a menos que estés siendo abusivo, al igual que el resto de Github.

Para repositorios privados, cada cuenta tiene automáticamente 2000 minutos de tiempo de construcción cada mes, lo cual es muy generoso. Eso es casi un día y medio de compilación continua, por lo que tendría que estar haciendo algunas compilaciones muy largas, o toneladas de confirmaciones, para alcanzar ese número. Es más probable que alcance el límite de almacenamiento de 500 MB para las cuentas gratuitas. Sin embargo, si está construyendo sobre cada compromiso, con tiempos de compilación largos y confirmando con frecuencia, puede agotar ese número.

Los usuarios de Github Pro ($ 4 / mes) obtienen 3000 minutos y 1 GB de almacenamiento, al igual que las organizaciones que usan el plan Github Team, que cuesta $ 4 por usuario, por mes.

Github Enterprise, que cuesta $ 21 por usuario, por mes, brinda 50,000 minutos de minutos de compilación, que son 35 días seguidos de compilaciones, lo que le permite ejecutar compilaciones las 24 horas del día, los 7 días de la semana y más.

Si se excede en cualquier plan, simplemente se le facturará por los minutos adicionales utilizados. El las tarifas son bastante justascon 2000 minutos adicionales que cuestan $16.

¿Debería usar acciones o su propio servidor de compilación?

logotipo de jenkins

CI/CD comienza con el seguimiento del control de versiones. Las compilaciones automatizadas generalmente se ejecutan para cada confirmación o versión principal, y la mayoría de los sistemas de servidores de compilación independientes, como Jenkins o TeamCity, se integrarán con su git repositorio para proporcionar esta funcionalidad.

Esto hace que la propia solución CI de Github sea bastante útil en comparación: está integrada directamente en el servicio que ya está utilizando y es extremadamente fácil de poner en marcha. Todo lo que tiene que hacer es enviar el archivo de configuración de compilación a su .github carpeta, y Github lo recogerá y lo ejecutará. Si bien los servicios independientes pueden ser útiles para implementaciones empresariales, para el usuario promedio, la simplicidad de usar Github Actions es más fácil que incluso instalar un servidor de compilación personalizado.

Las acciones de Github también se pueden usar para algo más que compilaciones automatizadas. Admiten todo tipo de automatización de repositorios, incluido el trabajo con propuestas y solicitudes de incorporación de cambios.

Dicho esto, las acciones de Github no son tan completas como ejecutar su propio servidor, y si realiza muchas compilaciones regulares o complicadas, debería considerar configurar un servidor Jenkins. Si realiza muchas compilaciones con uso intensivo de CPU, Jenkins también puede ser bueno para eso, pero Github Actions también admite el uso de su propio servidor para ejecutar compilaciones.

RELACIONADO: Cómo instalar y usar Jenkins para construir una canalización de CI/CD

Deja un comentario

En esta web usamos cookies para personalizar tu experiencia de usuario.    Política de cookies
Privacidad