Acciones de GitHub: Automatización con CI/CD

En un mundo donde la entrega continua de software se ha convertido en un estándar, GitHub Actions surge como una poderosa herramienta para automatizar el ciclo de vida del desarrollo de software. GitHub Actions hace posible implementar canales de integración continua (CI) y entrega continua (CD) directamente en GitHub, proporcionando una manera eficiente de automatizar pruebas, compilaciones, implementación y cualquier otro tipo de flujo de trabajo relacionado con su proyecto.

¿Qué son las acciones de GitHub?

GitHub Actions es una característica de GitHub que permite la creación de flujos de trabajo personalizados que se desencadenan por eventos específicos dentro del repositorio, como solicitudes push, pull, creación de etiquetas, entre otros. Estos flujos de trabajo se definen en archivos YAML y se ejecutan en ejecutores, que son entornos de ejecución proporcionados por GitHub o autohospedados por los usuarios.

Componentes principales

  • Flujos de trabajo: Secuencias de tareas que se ejecutan en respuesta a eventos en el repositorio.
  • Eventos: acciones que desencadenan la ejecución de flujos de trabajo, como solicitudes push o pull.
  • Trabajos: conjuntos de pasos que se ejecutan como parte de un flujo de trabajo.
  • Pasos: Tareas individuales que componen un trabajo. Pueden ser comandos de shell o acciones reutilizables.
  • Acciones: Componentes reutilizables que se pueden incorporar a los pasos de un flujo de trabajo.
  • Runners: servidores que alojan la ejecución de flujos de trabajo, que pueden ser proporcionados por GitHub o autohospedados.

Cómo funcionan las acciones de GitHub para CI/CD

GitHub Actions permite a los desarrolladores definir una serie de pasos automatizados que se realizarán cada vez que se envíe código al repositorio o cuando se cree una solicitud de extracción. Estos pasos pueden incluir la ejecución de pruebas automatizadas, la compilación de código e incluso la implementación en entornos de producción o ensayo.

Integración Continua (CI)

La integración continua es una práctica de desarrollo que implica fusionar código con frecuencia en un repositorio compartido. Cada envío se verifica mediante un proceso de compilación y prueba automatizado, lo que garantiza que los cambios en el código no interrumpan el proyecto. En GitHub Actions, esto se logra a través de flujos de trabajo que se activan mediante eventos como solicitudes push o pull. Los desarrolladores pueden configurar el flujo de trabajo para ejecutar una serie de comandos que compilarán código, ejecutarán pruebas unitarias, pruebas de integración, análisis de código estático y más.

Entrega continua (CD)

La entrega continua es el siguiente paso hacia la integración continua. Una vez integrado el código, se coloca automáticamente en un entorno de producción o preproducción, lo que garantiza que el software pueda publicarse en cualquier momento. En el contexto de GitHub Actions, esto significa configurar flujos de trabajo que no solo prueben y creen código, sino que también lo implementen. Esto puede incluir actualizaciones de servidores, servicios en la nube, contenedores, funciones sin servidor, entre otros.

Beneficios de las acciones de GitHub para CI/CD

  • Automatización completa: desde la integración hasta la entrega, todo se puede automatizar, lo que reduce la necesidad de intervención manual y aumenta la velocidad de entrega.
  • Personalización: Posibilidad de crear flujos de trabajo personalizados que se adapten a las necesidades específicas del proyecto.
  • Integración profunda con GitHub: Como característica nativa de GitHub, Actions ofrece una integración profunda con otras características de la plataforma, como Issues y Pull Requests.
  • Comunidad y mercado: acceso a un amplio repositorio de acciones desarrolladas por la comunidad que se pueden reutilizar para acelerar la configuración del flujo de trabajo.
  • Escalar: GitHub Actions se escala automáticamente para satisfacer las demandas del proyecto y los ejecutores se pueden alojar en la infraestructura de GitHub o en sus propios servidores.

Ejemplo de flujo de trabajo con acciones de GitHub

Consideremos un flujo de trabajo de CI de ejemplo que ejecuta pruebas automatizadas en cada solicitud de inserción o extracción a la rama principal. El archivo `.github/workflows/ci.yml` podría verse así:


nombre: Integración Continua
en: [empujar, tirar_request]
trabajos:
  construir y probar:
    se ejecuta en: ubuntu-latest
    pasos:
    - usos: acciones/checkout@v2
    - nombre: configurar Node.js
      usos: acciones/setup-node@v1
      con:
        versión de nodo: '14'
    - nombre:Instalar dependencias
      ejecutar: instalación npm
    - nombre: ejecutar pruebas
      ejecutar: prueba npm
    

Este flujo de trabajo define un trabajo llamado build-and-test que se ejecutará en un entorno Ubuntu. Comienza revisando el código, configura Node.js, instala las dependencias del proyecto y finalmente ejecuta las pruebas.

Consideraciones finales

GitHub Actions es una herramienta sólida y flexible que puede transformar significativamente su flujo de trabajo de desarrollo de software. Con su capacidad de personalización y su profunda integración con GitHub, permite a equipos de cualquier tamaño automatizar sus procesos de CI/CD de manera efectiva, garantizando calidad y velocidad en la entrega de software.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de los siguientes componentes NO es uno de los elementos principales de GitHub Actions como se describe en el texto?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Páginas de GitHub: alojamiento de páginas estáticas

Siguiente página del libro electrónico gratuito:

37Páginas de GitHub: alojamiento de páginas estáticas

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.