Entender las GitHub Actions

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

Nota: Los ejecutores hospedados en GitHub no son compatibles con GitHub Enterprise Server actualmente. Puedes encontrar más información sobre el soporte que se tiene planeado en el futuro en el Itinerario público de GitHub.

Resumen

Las GitHub Actions te ayudan a automatizar tareas dentro de tu ciclo de vida de desarrollo de software. Las GitHub Actions se manejan por eventos, lo cual significa que puedes ejecutar una serie de comandos después de que haya ocurrido un evento especificado. Por ejemplo, cada vez que alguien crea una solicitud de cambios para un repositorio, puedes ejecutar automáticamente un comando que ejecute un script de prueba de software.

Este diagrama ilustra como puedes utilizar las GitHub Actions para ejecutar automáticamente tus scripts de pruebas de software. Un evento activa el flujo de trabajo automáticamente, el cual contiene un job. Entonces, el job utiliza pasos para controlar el orden en el que se ejecutan las acciones. Estas acciones son los comandos que automatizan las pruebas de tu software.

Resumen del flujo de trabajo

Los componentes de las GitHub Actions

A continuación, encontrarás una lista de los diferentes componentes de las GitHub Actions que funcionan en conjunto para ejecutar jobs. Puedes ver cómo dichos componentes interactúan entre ellos.

Resumen de componentes y servicios

Flujos de trabajo

El flujo de trabajo es un procedimiento automatizado que agregas a tu repositorio. Los flujos de trabajo se componen de uno o más jobs y pueden programarse o activarse a través de un evento. El flujo de trabajo se puede utilizar para crear, probar, empacar, lanzar o desplegar un proyecto en GitHub.

Eventos

En evento es una actividad específica que activa un flujo de trabajo. Por ejemplo, la actividad se puede originar desde GitHub cuando alguien sube una confirmación a un repositorio o cuando se crea una propuesta o solicitud de extracción. También puedes utilizar el webhook de envío del repositorio para activar un flujo de trabajo cuando ocurra un evento externo. Para encontrar una lista de eventos completa que puede utilizarse para activar flujos de trabajo, consulta los Eventos que activan flujos de trabajo.

Jobs

Un job es un conjunto de pasos que se ejecutan en el mismo ejecutor. Predeterminadamente, un flujode trabajo con varios jobs los ejecutará en paralelo. También puedes configurar el flujo de trabajo para que los ejecute secuencialmente. Por ejemplo, un flujo de trabajo puede tener dos trabajos consecutivos para desarrollar y probar el código. El trabajo de prueba depende del estado del trabajo de desarrollo. Si el trabajo de desarrollo falla, no se ejecutará el trabajo de prueba.

Pasos

Un paso es una tarea individual que puede ejecutar comandos en un job. Un paso puede ser tanto una acción como un comando de shell. Cada paso en un job se ejecuta en el mismo ejecutor, lo cual permite que las acciones en dicho job compartan datos entre ellas.

Acciones

Las Acciones son comandos independientes que se combinan en pasos para crear un job. Las acciones son el componente portable más pequeño de un flujo de trabajo. Puedes crear tus propias acciones, o utilizar acciones que haya creado la comunidad de GitHub. Para utilizar una acción en un flujo de trabajo, debes incluirla como paso.

Ejecutores

Un ejecutor es un servidor que tiene instalada la aplilcación de ejecutor de GitHub Actions. Puedes utilizar un ejecutor que esté hospedado en GitHub, o puedes hospedar el tuyo propio. Un ejecutor escucha a los jobs disponibles, ejecuta un job a la vez, y reporta el progreso, bitácoras y resultados de vuelta a GitHub. Los ejecutores hospedados en GitHub se basan en Ubuntu Linux, Microsoft Windows y macOS, y cada job en un flujo de trabajo se ejecuta en un ambiente virtual nuevo. Para obtener más información sobre los ejecutores hospedados en GitHub, consulta la sección "Acerca de los ejecutores hospedados en GitHub". Si necesitas un sistema operativo diferente o si requieres de una configuración de hardware específica, puedes hospedar tus propios ejecutores. Para obtener información sobre los ejecutores auto-hospedados, consulta la sección "Hospedar tus propios ejecutores".

Crear un flujo de trabajo de ejemplo

Las GitHub Actions usan la sintaxis de YAML para definir los eventos, jobs y pasos. Estos archivos de YAML se almacenan en el repositorio de tu código, en un directorio que se llama .github/workflows.

Puedes crear un flujo de trabajo de ejemplo en tu repositorio que active automáticamente una serie de comandos cada que se suba código. En este flujo de trabajo, las GitHub Actions verifican el código que se subió, instalan las dependencias de software, y ejecutan bats -v.

  1. En tu repositorio, crea el directorio .github/workflows/ para almacenar tus archivos de flujo de trabajo.
  2. En el directorio .github/workflows/, crea un archivo nuevo que se llame learn-github-actions.yml y agrega el siguiente código.
    name: learn-github-actions
    on: [push]
    jobs:
      check-bats-version:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - uses: actions/setup-node@v2
            with:
              node-version: '14'
          - run: npm install -g bats
          - run: bats -v
    
  3. Confirma estos cambios y cárgalos a tu repositorio de GitHub.

Tu archivo de flujo de trabajo de GitHub Actions nuevo estará ahora instalado en tu repositorio y se ejecutará automáticamente cada que alguien suba un cambio a éste. Para encontrar los detalles sobre el historial de ejecución un job, consulta la sección "Visualizar la actividad del flujo de trabajo".

Entender el archivo de flujo de trabajo

Para ayudarte a entender cómo se utiliza la sintaxis de YAML para crear un flujo de trabajo, esta sección explica cada línea del ejemplo de la introducción:

name: learn-github-actions
Opcional - El nombre del flujo de trabajo ta como aparece en la pestaña de Acciones del repositorio de GitHub.
on: [push]
Especifica el evento que activa automáticamente el archivo de flujo de trabajo. Este ejemplo utiliza el evento push, para que los jobs se ejecuten cada que alguien sube un cambio al repositorio. Puedes configurar el flujo de trabajo para que solo se ejecuten en ciertas ramas, rutas, o etiquetas. Para encontrar ejemplos de sintaxis que incluyan o excluyan ramas, rutas, o etiquetas, consulta la sección "Sintaxis de flujo de trabajo para GitHub Actions".
jobs:
Agrupa los jobs que se ejecutan en el archivo de flujo de trabajo learn-github-actions.
check-bats-version:
Define el nombre del job check-bats-version que se almacena en la sección jobs.
  runs-on: ubuntu-latest
Configura el job para ejecutarse en un ejecutor Ubuntu Linux. Esto significa que el job se ejecutará en una máquina virtual nueva que se hospede en GitHub. Para encontrar ejemplos de sintaxis que utilicen otros ejecutores, consulta la sección "Sintaxis de flujo de trabajo para GitHub Actions".
  steps:
Agrupa todos los pasos que se ejecutan en el job check-bats-version. Cada elemento anidado bajo esta sección es un comando de shell o acción separada.
    - uses: actions/checkout@v2
La palabra clave uses le dice al job que recupere la v2 de la acción comunitaria que se llama actions/checkout@v2. Esta es una acción que revisa tu repositorio y lo descarga al ejecutor, lo que te permite ejecutar acciones contra tu código (tales como las herramientas de prueba). Debes utilizar la acción de verificación cada que tu flujo de trabajo se ejecute contra el código del repositorio o cada que estés utilizando una acción definida en el repositorio.
    - uses: actions/setup-node@v2
      with:
        node-version: '14'
Este paso utiliza la acción actions/setup-node@v2 para instala la versión especificada del paquete de software del node en el ejecutor, lo cual te otorga acceso al comando npm.
    - run: npm install -g bats
La palabra clave run le dice al job que ejecute un comando en el ejecutor. Ene ste caso, estás utilizando npm para instalar el paquete de pruebas del software bats.
    - run: bats -v
Finalmente, ejecutarás el comando bats con un parámetro que producirá la versión del software.

Visualizar el archivo de flujo de trabajo

En este diagrama, puedes ver el archivo de flujo de trabajo que acabas de crear, así como la forma en que los componentes de GitHub Actions se organizan en una jerarquía. Cada paso ejecuta una acción simple o un comando de shell. Los pasos 1 y 2 utilizan acciones comunitarias preconstruidas. Los pasos 3 y 4 ejecutan comandos de shell directamente en el ejecutor. Para encontrar más acciones preconstruidas para tus flujos de trabajo, consulta la sección "Encontrar y personalizar acciones".

Resumen del flujo de trabajo

Visualizar la actividad de un job

Una vez que tu job comience a ejecutarse, podrásver una gráfica de visualización del progreso de dicha ejecución y ver la actividad de cada paso en GitHub.

  1. En your GitHub Enterprise Server instance, visita la página principal del repositorio.

  2. Debajo del nombre de tu repositorio, da clic en Acciones. Navegar al repositorio

  3. En la barra lateral izquierda, da clic en el flujo de trabajo que quieras ver. Impresión de pantalla de los resultados del flujo de trabajo

  4. Debajo de "Ejecuciones de flujo de trabajo", da clic en el nombre de la ejecución que quieres ver. Captura de pantalla de las ejecuciones del flujo de trabajo

  5. Debajo de Jobs o en la gráfica de visualización, da clic en el job que quieras ver. Seleccionar job

  6. Ve los resultados de cada paso. Impresión de pantalla de los detalles de la ejecución del flujo de trabajo

Pasos siguientes

Para seguir aprendiendo sobre las GitHub Actions, consulta la sección "Encontrar y personalizar las acciones".

Para entender cómo funciona la facturación de las GitHub Actions, consulta la sección "Acerca de la facturación para las GitHub Actions".

Contactar con soporte técnico

Si necesitas ayuda con lo que sea relacionado con la configuración de flujo de trabajo, tal como la sintaxis, los ejecutores hospedados en GitHub, o la creación de acciones, busca un tema existente o inicia uno nuevo en la categoría de GitHub Actions de Soporte de la Comunidad de GitHub.

Si tienes algún tipo de retroalimentación o solicitudes de características para GitHub Actions, compártelas en el Formulario para retroalimentación de GitHub Actions.

Contacta a your site administrator para cualquiera de los siguientes, que tu tipo de uso o el tipo de uso que pretendes tener caiga en las siguientes categorías de limitación:

  • Si crees que tu cuenta se ha restringido de manera incorrecta
  • Si llegas un error inesperado cuando ejecutas una de tus acciones, por ejemplo: una ID única
  • Si llegas a una situación en donde el comportamiento existente contradice a aquél que se espera, pero no siempre se documenta

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.