Skip to main content

Entender las GitHub Actions

Aprende lo básico de las GitHub Actions, incluyendo los conceptos nucleares y la terminología esencial.

Note

Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server. Puede ver más información sobre la compatibilidad futura planeada en GitHub public roadmap.

Información general

GitHub Actions es una plataforma de integración y despliegue continuos (IC/DC) que te permite automatizar tu mapa de compilación, pruebas y despliegue. Puedes crear flujos de trabajo y crear y probar cada solicitud de cambios en tu repositorio o desplegar solicitudes de cambios fusionadas a producción.

GitHub Actions va más allá de solo DevOps y te permite ejecutar flujos de trabajo cuando otros eventos suceden en tu repositorio. Por ejemplo, puedes ejecutar un flujo de trabajo para que agregue automáticamente las etiquetas adecuadas cada que alguien cree una propuesta nueva en tu repositorio.

Debes hospedar tus propias máquinas virtuales Linux, Windows o macOS para ejecutar flujos de trabajo de tu instancia de GitHub Enterprise Server. Los ejecutores autohospedados pueden ser físicos, virtuales, en un contenedor, locales o en una nube.

Para obtener más información sobre la introducción de GitHub Actions en la empresa, consulta "Intruducir las GitHub Actions a tu empresa".

Los componentes de las GitHub Actions

Puede configurar un flujo de trabajo de GitHub Actions que se desencadene cuando se produzca un evento en el repositorio, por ejemplo, la apertura de una solicitud de incorporación de cambios o la creación de una incidencia. El flujo de trabajo contiene uno o varios trabajos que se pueden ejecutar en orden secuencial o en paralelo. Cada trabajo se ejecutará dentro de su propio ejecutor de máquina virtual o dentro de un contenedor, y tendrá uno o varios pasos que pueden ejecutar un script que defina, o bien una acción, que es una extensión reutilizable que puede simplificar el flujo de trabajo.

Diagrama de un evento que desencadena el ejecutor 1 para ejecutar el trabajo 1, que desencadena el ejecutor 2 para ejecutar el trabajo 2. Cada uno de los trabajos se divide en varios pasos.

Workflows

Un flujo de trabajo es un proceso automatizado configurable que ejecutará uno o más trabajos. Los flujos de trabajo se definen mediante un archivo de YAML que se verifica en tu repositorio y se ejecutará cuando lo active un evento dentro de este o puede activarse manualmente o en una programación definida.

Los flujos de trabajo se definen en el directorio .github/workflows de un repositorio. Un repositorio puede tener varios flujos de trabajo, y cada uno puede realizar un conjunto diferente de tareas, como las siguientes:

  • Compilar y probar de solicitudes de incorporación de cambios.
  • Implementar la aplicación cada vez que se crea una versión.
  • Agregar una etiqueta cada vez que se abre una incidencia nueva.

Puede hacer referencia a un flujo de trabajo dentro de otro flujo de trabajo. Para obtener más información, vea «Reutilización de flujos de trabajo».

Para obtener más información, vea «Escritura de flujos de trabajo».

Eventos

Un evento es una actividad específica en un repositorio que desencadena una ejecución de flujo de trabajo. Por ejemplo, una actividad puede originarse desde GitHub cuando alguien crea una solicitud de cambios, abre una propuesta o sube una confirmación a un repositorio. También puede desencadenar una ejecución de flujo de trabajo según una programación, mediante la publicación en una API de REST o manualmente.

Para obtener una lista completa de eventos que se pueden usar para desencadenar flujos de trabajo, vea Eventos que desencadenan flujos de trabajo.

Trabajos

Un **trabajo ** es un conjunto de pasos de un flujo de trabajo que se ejecuta en el mismo ejecutor. Cada paso puede ser un script de shell o una acción que se ejecutarán. Los pasos se ejecutarán en orden y serán dependientes uno del otro. Ya que cada paso se ejecuta en el mismo ejecutor, puedes compartir datos de un paso a otro. Por ejemplo, puedes tener un paso que compile tu aplicación, seguido de otro que pruebe la aplicación que se compiló.

Puede configurar las dependencias de un trabajo con otros trabajos; de manera predeterminada, los trabajos no tienen dependencias y se ejecutan en paralelo. Cuando un trabajo depende de otro, espera a que se complete el trabajo dependiente antes de ejecutarse.

Por ejemplo, es posible que configure varios trabajos de compilación para distintas arquitecturas sin dependencias de trabajo y un trabajo de empaquetado que dependa de esas compilaciones. Los trabajos de compilación se ejecutan en paralelo y, cuando se han completado correctamente, se ejecuta el trabajo de empaquetado.

Para obtener más información, vea «Elección de lo que hace el flujo de trabajo».

Acciones

Una acción es una aplicación personalizada para la plataforma de GitHub Actions que realiza una tarea compleja pero que se repite frecuentemente. Use una acción para ayudarle a reducir la cantidad de código repetitivo que escribe en los archivos de flujo de trabajo. Una acción puede extraer el repositorio de Git desde GitHub, configurar la cadena de herramientas correcta para el entorno de compilación, o bien configurar la autenticación en el proveedor de servicios en la nube.

Puedes escribir tus propias acciones o puedes encontrar acciones para utilizar en tus flujos de trabajo dentro de GitHub Marketplace.

Para compartir las acciones en toda la empresa sin publicarlas de forma pública, puedes almacenarlas en un repositorio interno y luego configurarlo para que acceda a los flujos de trabajo de GitHub Actions en otros repositorios que sean propiedad de la misma organización o de una organización de la empresa. Para obtener más información, vea «Compartir acciones y flujos de trabajo con tu empresa».

Para más información sobre las acciones, vea "Uso compartido de automatizaciones".

Ejecutores

Un ejecutor es un servidor que ejecuta los flujos de trabajo cuando se desencadenan. Cada ejecutor puede ejecutar un solo trabajo a la vez. Debes hospedar tus propios ejecutores para GitHub Enterprise Server.

Para más información, vea "Alojar tus propios corredores".

Pasos siguientes

GitHub Actions puede ayudarte a automatizar casi cualquier aspecto de tu s procesos de desarrollo de aplicaciones. ¿Ya está listo para comenzar? Aquí tienes algunos recursos útiles para que tomes tus siguientes pasos con GitHub Actions:

Información adicional