Eventos que desencadenan flujos de trabajo

Puedes configurar tus flujos de trabajo para que se ejecuten cuando ocurre una actividad específica en GitHub, en un horario programado o cuando se produce un evento fuera de GitHub.

Configurar los eventos del flujo de trabajo

Puedes configurar los flujos de trabajo para que se ejecuten una o más veces utilizando la sintaxis de flujo de trabajo on. Para obtener más información, consulta la sección "Sintaxis del flujo de trabajo para las GitHub Actions".

Ejemplo: utilizando un solo evento

# Triggered when code is pushed to any branch in a repository
on: push

Ejemplo: Utilizando una lista de eventos

# Triggers the workflow on push or pull request events
on: [push, pull_request]

Ejemplo: Utilizando eventos múltiples con tipos de actividad o configuración

Si necesitas especificar tipos de actividad o configuración para un evento, debes configurar cada evento por separado. Debes agregar dos puntos (:) a todos los eventos, incluyendo aquellos sin configuración.

on:
  # Trigger the workflow on push or pull request,
  # but only for the main branch
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
  # Also trigger on page_build, as well as release created events
  page_build:
  release:
    types: # This configuration does not affect the page_build event above
      - created

Nota: No puedes activar nuevas ejecuciones de flujo de trabajo usando el GITHUB_TOKEN. Para obtener más información, consulta "Activar nuevos flujos de trabajo mediante un token de acceso personal".

Los siguientes pasos se producen para activar una ejecución de flujo de trabajo:

  1. Se produce un evento en tu repositorio, y el evento resultante tiene una confirmación de SHA y una referencia de Git asociadas.

  2. El directorio .github/workflows en tu repositorio se busca para los archivos de flujo de trabajo en la confirmación SHA o la referencia de Git asociadas. Los archivos de flujo de trabajo deben estar presentes en la confirmación SHA o la referencia de Git que se debe tener en cuenta.

    Por ejemplo, si el evento se produjo en una rama particular del repositorio, los archivos de flujo de trabajo deben estar presentes en el repositorio en esa rama.

  3. Se inspeccionarán los archivos de flujo de trabajo para esa confirmación de SHA y referencia de Git, y se activará una nueva ejecución de flujo de trabajo para cualquier flujo de trabajo que tenga valores on: que coincidan con el evento desencadenante.

    El flujo de trabajo se ejecuta en el código de tu repositorio en la misma confirmación SHA y la referencia de Git que desencadenó el evento. Cuando se ejecuta un flujo de trabajo, GitHub establece las variables de entorno GITHUB_SHA (confirmar SHA) y GITHUB_REF (referencia de Git) en el entorno del ejecutor. Para obtener más información, consulta "Usar variables de entorno".

Eventos programados

El evento schedule te permite activar un flujo de trabajo en una hora programada.

Nota: El evento de schedule puede retrasarse durante periodos de cargas algas de ejecuciones de flujo de trabajo de GitHub Actions. Los tiempos de carga alta incluyen el inicio de cada hora. Para aminorar la posibilidad de los retrasos, programa tu flujo de trabajo para que se ejecute en una porción diferente de la hora.

programación

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
n/an/aÚltima confirmación en la rama predeterminadaRama por defecto

Puedes programar un flujo de trabajo para que se ejecute en horarios UTC específicos usando sintaxis de cron POSIX. Los flujos de trabajo programados se ejecutan en la confirmación más reciente en la rama base o en la rama por defecto. El intervalo más corto en el que puedes ejecutar flujos de trabajo programados es una vez cada 5 minutos.

Este ejemplo activa el flujo de trabajo diariamente a las 5:30 y 17:30 UTC:

on:
  schedule:
    # * is a special character in YAML so you have to quote this string
    - cron:  '30 5,17 * * *'

La sintaxis de cron tiene cinco campos separados por un espacio, y cada campo representa una unidad de tiempo.

┌───────────── minuto (0 - 59)
│ ┌───────────── hora (0 - 23)
│ │ ┌───────────── día del mes (1 - 31)
│ │ │ ┌───────────── mes (1 - 12 o EN-DIC)
│ │ │ │ ┌───────────── día de la semana (0 - 6 o DOM-SÁB)
│ │ │ │ │                                   
│ │ │ │ │
│ │ │ │ │
* * * * *

Puedes usar estos operadores en cualquiera de los cinco campos:

OperadorDescripciónEjemplo
*Cualquier valor* * * * * se ejecuta todos los días a cada minuto.
,Separador de la lista de valores2,10 4,5 * * * se ejecuta en el minuto 2 y 10 de la cuarta y quinta hora de cada día.
-Rango de valores0 4-6 * * * se ejecuta en el minuto 0 de la cuarta, quinta y sexta hora.
/Valores del paso20/15 * * * * se ejecuta cada 15 minutos a partir del minuto 20 hasta el minuto 59 (minutos 20, 35 y 50).

Nota: GitHub Actions no es compatible con la sintaxis que no es estándar @yearly, @monthly, @weekly, @daily, @hourly y @reboot.

Puedes usar contrab guru para generar tu sintaxis de cron y confirmar a qué hora se ejecutará. Para que puedas comenzar, hay también una lista de ejemplos de crontab guru.

Las notificaciones para los flujos de trabajo programados se envían al usuario que modificó por última vez la sintaxis de cron en el archivo de flujo de trabajo. Para obtener más información, por favor consulta la sección "Notificaciones para las ejecuciones de flujo de trabajo".

Eventos manuales

Puedes activar ejecuciones de flujo de trabajo manualmente. Para activar flujos de trabajo específicos en un repositorio, utiliza el evento workflow_dispatch. Para activar más de un flujo de trabajo en un repositorio y crear eventos personalizados y tipos de eventos, utiliza el evento repository_dispatch.

workflow_dispatch

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
workflow_dispatchn/aÚltima confirmacion en la rama de GITHUB_REFRama que recibió el envío

Puedes configurar propiedades de entrada definidas personalmente, valores de entrada predeterminados y entradas requeridas para el evento directamente en tu flujo de trabajo. Cuando se ejecuta el flujod e trabajo, puedes acceder a los valores de entrada en el contexto de github.event.inputs. Para obtener más información, consulta "Contextos".

Puedes activar una ejecución de flujo de trabajo manualmente si utilizas la API de GitHub y desde GitHub. Para obtener más información, consulta la sección "Ejecutar un flujo de trabajo manualmente".

Cuando activas el evento en GitHub, puedes proporcionar la ref y cualquier input directamente en GitHub. Para obtener más información, consulta la sección "Utilizar entradas y salidas con una acción".

Para activar el evento de webhook personalizado de workflow_dispatch utilizando la API de REST, debes enviar una solicitud de POST a la terminal de la API de GitHub y proporcionar la ref y cualquier input relacionado. Para obtener más información, consulta terminal "Crear un evento de envío de flujo de trabajo" de la API de REST.

Ejemplo

Para utilizar el evento de workflow_dispatch, necesitas incluirlo como un activador en tu archivo de flujo de trabajo de GitHub Actions. El siguiente ejemplo ejecuta el flujo de trabajo únicamente cuando se activa manualmente:

on: workflow_dispatch

Ejemplo de configuración de flujo de trabajo

Este ejemplo define las entradas name y home y las imprime utilizando los contextos github.event.inputs.name y github.event.inputs.home. Si no se proporciona un home, se imprime el valor predeterminado 'The Octoverse'.

name: Manually triggered workflow
on:
  workflow_dispatch:
    inputs:
      name:
        description: 'Person to greet'
        required: true
        default: 'Mona the Octocat'
      home:
        description: 'location'
        required: false
        default: 'The Octoverse'

jobs:
  say_hello:
    runs-on: ubuntu-latest
    steps:
      - run: |
          echo "Hello ${{ github.event.inputs.name }}!"
          echo "- in ${{ github.event.inputs.home }}!"

repository_dispatch

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
repository_dispatchn/aÚltima confirmación en la rama predeterminadaRama por defecto

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Puedes utilizar la API de GitHub para desencadenar un evento de webhook llamado repository_dispatch cuando quieras desencadenar un flujo de trabajo para una actividad que sucede fuera de GitHub. Para obtener más información, consulta la sección "Crear un evento de envío de repositorio".

Para desencadenar el evento de webhook repository_dispatch personalizado, debes enviar una solicitud de POST a un punto final de una API de GitHub y dar un nombre de event_type para describir el tipo de actividad. Para desencadenar la ejecución de un flujo de trabajo, también debes configurar tu flujo de trabajo para usar el evento repository_dispatch.

Ejemplo

Predeterminadamente, todos los event_types desencadenan la ejecución de un flujo de trabajo. Puedes limitar tu flujo de trabajo para que se ejecute cuando un valor específico de event_type se envíe en la carga útil del webhook de repository_dispatch. Tú defines los tipos de evento enviados en la carga útil de repository_dispatch cuando creas el repositorio.

on:
  repository_dispatch:
    types: [opened, deleted]

Eventos de reutilización de flujos de trabajo

workflow_call es una palabra clave que se utiliza como el valor de on en un flujo de trabajo de la misma forma que un evento. Esto indica que se puede llamar a un flujo de trabajo desde otro. Para obtener más información, consulta la sección "Reutilizar los flujos de trabajo".

workflow_call

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
El mismo que el flujo de trabajo que llaman/aEl mismo que el flujo de trabajo que llamaEl mismo que el flujo de trabajo que llama

Ejemplo

Para que un flujo de trabajo sea reutilizable, debe incluir workflow_call como uno de los valores de on. El siguiente ejemplo solo ejecuta el flujo de trabajo cuando se le llama desde otro flujo de trabajo:

on: workflow_call

Eventos de webhook

Puedes configurar tu flujo de trabajo para que se ejecute cuando se generen los eventos de webhook en GitHub. Algunos eventos tienen más de un tipo de actividad que activa el evento. Si más de un tipo de actividad activa el evento, puedes especificar qué tipos de actividad activarán el flujo de trabajo para que se ejecute. Para obtener más información, consulta la sección "webhooks".

No todos los eventos de webhook activan flujos de trabajo. Para encontrar una lista completa de eventos de webhook disponibles y sus cargas útiles, consulta la sección "Eventos de webhook y cargas útiles".

check_run

Ejecuta tu flujo de trabajo en cualquier momento que se produzca el evento check_run. Más de un tipo de actividad desencadena este evento. Para obtener más información acerca de la API de REST, consulta la sección "Ejecuciones de verificación".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
check_run- created
- rerequested
- completed
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una ejecución de verificación esté como rerequested o completed.

on:
  check_run:
    types: [rerequested, completed]

check_suite

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento check_suite. Más de un tipo de actividad desencadena este evento. Para obtener más información acerca de la API de REST, consulta la sección "Suites de verificación".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Nota: Para evitar flujos de trabajo recurrentes, este evento no activa flujos de trabajo si la comprobación de suite fue creada por GitHub Actions.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
check_suite- completed
- requested
- rerequested
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una comprobación de ejecución ha sido resolicitada o completada.

on:
  check_suite:
    types: [rerequested, completed]

create (crear)

Ejecuta tu flujo de trabajo en cualquier momento en que alguien cree una rama o etiqueta, que activa el evento crear. Para obtener más información sobre la API de REST, consulta la sección "Crear una referencia".

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
create (crear)n/aÚltima confirmación en la rama o etiqueta creadaRama o etiqueta creada

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento crear.

on:
  create

delete

Ejecuta tu flujo de trabajo en cualquier momento en que alguien cree una rama o etiqueta, que activa el evento eliminar. Para obtener más información sobre la API de REST, consulta la sección "Borrar una referencia".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
deleten/aÚltima confirmación en la rama predeterminadaRama por defecto

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento eliminar.

on:
  delete

deployment

Ejecuta tu flujo de trabajo en cualquier momento en que alguien cree una implementación, que activa el evento implementación. Las implementaciones creadas con SHA de confirmación pueden no tener una referencia de Git. Para obtener más información acerca de la API de REST, consulta la sección "Despliegues".

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
deploymentn/aConfirmación de implementaciónRama o etiqueta que se debe implementar (vacío si está confirmada)

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento implementación.

on:
  deployment

deployment_status

Ejecuta tu flujo de trabajo en cualquier momento en que un tercero proporcione un estado de implementación, que activa un evento de deployment_status. Las implementaciones creadas con SHA de confirmación pueden no tener una referencia de Git. Para obtener más información acerca de la API de REST, consulta la sección "Crear un estado de despliegue".

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
deployment_statusn/aConfirmación de implementaciónRama o etiqueta que se debe implementar (vacío si está confirmada)

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento implementación.

on:
  deployment_status

Nota: Cuando el estado de un estatus de despliegue se configure como inactive, no se creará un evento de webhook.

debate

Ejecuta tu flujo de trabajo cada que ocurra el evento discussion. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de GraphQL, consulta la sección "Debates".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
debate- created
- edited
- deleted
- transferred
- pinned
- unpinned
- labeled
- unlabeled
- locked
- unlocked
- category_changed
- answered
- unanswered
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando un debate está como created, edited, o answered.

on:
  discussion:
    types: [created, edited, answered]

discussion_comment

Ejecuta tu flujo de trabajo en cualquier momento que se produzca el evento discussion_comment. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de GraphQL, consulta la sección "Debates".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
discussion_comment- created
- edited
- deleted
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una propuesta ha sido created (creada) o deleted (eliminada).

on:
  discussion_comment:
    types: [created, deleted]

bifurcación

Ejecuta tu flujo de trabajo en cualquier momento en que alguien bifurque un repositorio, lo que activa el evento de fork. Para obtener más información sobre la API de REST, consulta la sección "Crear una bifurcación".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
bifurcaciónn/aÚltima confirmación en la rama predeterminadaRama por defecto

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento fork.

on:
  fork

gollum

Ejecuta tu flujo de trabajo cuando alguien crea o actualiza una página Wiki, lo que activa el evento gollum.

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
gollumn/aÚltima confirmación en la rama predeterminadaRama por defecto

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento gollum.

on:
  gollum

comentario_propuesta

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento issue_comment. Más de un tipo de actividad desencadena este evento. Para obtener más información acerca de la API de REST, consulta la sección "comentarios de una propuesta".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
comentario_propuesta- created
- edited
- deleted
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una propuesta ha sido created (creada) o deleted (eliminada).

on:
  issue_comment:
    types: [created, deleted]

El evento issue_comment ocurre para los comentarios tanto en propuestas como en solicitudes de cambios. Para determinar si el evento issue_comment se activó desde una propuesta o solicitud de cambios, puedes verificar la carga útil del evento para la propiedad issue.pull_request y utilizarla como condición para saltarse un job.

Por ejemplo, puedes elegir ejecutar el job pr_commented cuando ocurren los comentarios de evento en una solicitud de cambios, y el job issue_commented cuando ocurran eventos de comentarios en una propuesta.

on: issue_comment

jobs:
  pr_commented:
    # This job only runs for pull request comments
    name: PR comment
    if: ${{ github.event.issue.pull_request }}
    runs-on: ubuntu-latest
    steps:
      - run: |
          echo "Comment on PR #${{ github.event.issue.number }}"

  issue_commented:
    # This job only runs for issue comments
    name: Issue comment
    if: ${{ !github.event.issue.pull_request }}
    runs-on: ubuntu-latest
    steps:
      - run: |
          echo "Comment on issue #${{ github.event.issue.number }}"

propuestas

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento issues. Más de un tipo de actividad desencadena este evento. Para obtener información acerca de la API de REST, consulta la sección "propuestas".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
propuestas- opened
- edited
- deleted
- transferred
- pinned
- unpinned
- closed
- reopened
- assigned
- unassigned
- labeled
- unlabeled
- locked
- unlocked
- milestoned
- demilestoned
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una propuesta ha sido opened (abierta), edited (editada), o milestoned (marcada como hito).

on:
  issues:
    types: [opened, edited, milestoned]

etiqueta

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento de etiquetado. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección "Etiquetas".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
etiqueta- created
- edited
- deleted
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando un miembro ha sido creado o eliminado.

on:
  label:
    types: [created, deleted]

hito

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento milestone. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección "Hitos".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
hito- created
- closed
- opened
- edited
- deleted
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando un hito ha sido abierto o eliminado.

on:
  milestone:
    types: [opened, deleted]

page_build

Ejecuta tu flujo de trabajo en cualquier momento en que alguien suba a una GitHub Rama habilitada para páginas, que activa el evento page_build. Para obtener información acerca de la API de REST, consulta la sección "Páginas".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
page_buildn/aÚltima confirmación en la rama predeterminadan/a

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento page_build.

on:
  page_build

project

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento project. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección "Proyectos".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
project- created
- updated
- closed
- reopened
- edited
- deleted
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando un proyecto ha sido creado o eliminado.

on:
  project:
    types: [created, deleted]

project_card

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento project_card. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección "Tarjetas de proyecto".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
project_card- created
- moved
- converted to an issue
- edited
- deleted
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando un proyecto ha sido abierto o eliminado.

on:
  project_card:
    types: [created, deleted]

project_column

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento project_column. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección "Columnas de proyecto".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
project_column- created
- updated
- moved
- deleted
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una columna de proyecto ha sido created o deleted.

on:
  project_column:
    types: [created, deleted]

public

Ejecuta tu flujo de trabajo en cualquier momento en que alguien haga público un repositorio privado, lo que activa el evento public. Para obtener más información acerca de la API de REST, consulta la sección "Editar repositorios".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
publicn/aÚltima confirmación en la rama predeterminadaRama por defecto

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento public.

on:
  public

solicitud_extracción

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento de pull_request. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección "Solicitudes de cambios".

Notas:

  • Predeterminadamente, un flujo de trabajo solo se ejecuta cuando el tipo de actividad de una pull_request es opened, synchronize, o reopened. Para activar los flujos de trabajo para más tipos de actividades, usa la palabra clave tipos.
  • Los flujos de trabajo no se ejecutarán en la actividad de la pull_request si esta tiene un conflicto de fusión. El conflicto de fusión se debe resolver primero.
Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
solicitud_extracción- assigned
- unassigned
- labeled
- unlabeled
- opened
- edited
- closed
- reopened
- synchronize
- converted_to_draft
- ready_for_review
- locked
- unlocked
- review_requested
- review_request_removed
- auto_merge_enabled
- auto_merge_disabled
Última confirmación de fusión en la rama GITHUB_REFRama de fusión de PR refs/pull/:prNumber/merge

Puedes extender o limitar los tipos de actividad por defecto usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una solicitud de extracción ha sido assigned (asignada), opened, syncronize o reopened.

on:
  pull_request:
    types: [assigned, opened, synchronize, reopened]

Eventos de solicitud de extracción para repositorios bifurcados

Nota: los flujos de trabajo no se ejecutan en repositorios base privados cuando abres una solicitud de extracción desde un repositorio bifurcado.

Cuando creas una solicitud de extracción desde un repositorio bifurcado al repositorio base, GitHub envía el evento pull_request al repositorio base y no se producen eventos de solicitud de extracción en el repositorio bifurcado.

Los flujos de trabajo no se ejecutan en repositorios bifurcados por defecto. Debes habilitar las Acciones de GitHub en la pestaña Actions (Acciones) del repositorio bifurcado.

Cuando un contribuyente primerizo emite una solicitud de cambios a un repositorio público, podría necesitarse que un mantenedor con acceso de escritura apruebe los flujos de trabajo que se están ejecutando en la solicitud de cambios. Para obtener más información, consulta la sección "Aprobar flujos de trabajo desde bifurcaciones públicas".

Con la excepción de GITHUB_TOKEN, los secretos no se pasan al ejecutador cuando un flujo de trabajo se dispara desde un repositorio bifurcado. Los permisos para el GITHUB_TOKEN en los repositorios bifurcados son de solo lectura. Para obtener más información, consulta "Autenticar con el GITHUB_TOKEN".

Nota: Los flujos de trabajo que se activan mediante las solicitudes de cambios del Dependabot se tratan como si fueran de un repositorio bifurcado y también están sujetas a estas restricciones.

revisión_solicitud de extracción

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento pull_request_review. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección "Revisiones de solicitudes de extracción".

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
revisión_solicitud de extracción- submitted
- edited
- dismissed
Última confirmación de fusión en la rama GITHUB_REFRama de fusión de PR refs/pull/:prNumber/merge

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una revisión de solicitud de extracción ha sido edited (editada) o dismissed (descartada).

on:
  pull_request_review:
    types: [edited, dismissed]

Eventos de solicitud de extracción para repositorios bifurcados

Nota: los flujos de trabajo no se ejecutan en repositorios base privados cuando abres una solicitud de extracción desde un repositorio bifurcado.

Cuando creas una solicitud de extracción desde un repositorio bifurcado al repositorio base, GitHub envía el evento pull_request al repositorio base y no se producen eventos de solicitud de extracción en el repositorio bifurcado.

Los flujos de trabajo no se ejecutan en repositorios bifurcados por defecto. Debes habilitar las Acciones de GitHub en la pestaña Actions (Acciones) del repositorio bifurcado.

Cuando un contribuyente primerizo emite una solicitud de cambios a un repositorio público, podría necesitarse que un mantenedor con acceso de escritura apruebe los flujos de trabajo que se están ejecutando en la solicitud de cambios. Para obtener más información, consulta la sección "Aprobar flujos de trabajo desde bifurcaciones públicas".

Con la excepción de GITHUB_TOKEN, los secretos no se pasan al ejecutador cuando un flujo de trabajo se dispara desde un repositorio bifurcado. Los permisos para el GITHUB_TOKEN en los repositorios bifurcados son de solo lectura. Para obtener más información, consulta "Autenticar con el GITHUB_TOKEN".

Nota: Los flujos de trabajo que se activan mediante las solicitudes de cambios del Dependabot se tratan como si fueran de un repositorio bifurcado y también están sujetas a estas restricciones.

comentarios _revisiones_solicitudes de extracción

Ejecuta tu flujo de trabajo en cualquier momento en que se modifique una diferencia unificada de solicitud de extracción, que activa el evento pull_request_review_comment. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección Revisar comentarios.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
comentarios _revisiones_solicitudes de extracción- created
- edited
- deleted
Última confirmación de fusión en la rama GITHUB_REFRama de fusión de PR refs/pull/:prNumber/merge

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando un comentario de revisión de solicitud de extracción ha sido created o deleted.

on:
  pull_request_review_comment:
    types: [created, deleted]

Eventos de solicitud de extracción para repositorios bifurcados

Nota: los flujos de trabajo no se ejecutan en repositorios base privados cuando abres una solicitud de extracción desde un repositorio bifurcado.

Cuando creas una solicitud de extracción desde un repositorio bifurcado al repositorio base, GitHub envía el evento pull_request al repositorio base y no se producen eventos de solicitud de extracción en el repositorio bifurcado.

Los flujos de trabajo no se ejecutan en repositorios bifurcados por defecto. Debes habilitar las Acciones de GitHub en la pestaña Actions (Acciones) del repositorio bifurcado.

Cuando un contribuyente primerizo emite una solicitud de cambios a un repositorio público, podría necesitarse que un mantenedor con acceso de escritura apruebe los flujos de trabajo que se están ejecutando en la solicitud de cambios. Para obtener más información, consulta la sección "Aprobar flujos de trabajo desde bifurcaciones públicas".

Con la excepción de GITHUB_TOKEN, los secretos no se pasan al ejecutador cuando un flujo de trabajo se dispara desde un repositorio bifurcado. Los permisos para el GITHUB_TOKEN en los repositorios bifurcados son de solo lectura. Para obtener más información, consulta "Autenticar con el GITHUB_TOKEN".

Nota: Los flujos de trabajo que se activan mediante las solicitudes de cambios del Dependabot se tratan como si fueran de un repositorio bifurcado y también están sujetas a estas restricciones.

pull_request_target

Este evento se ejecuta en el contexto de la base de la solicitud de cambios en vez de en la confirmación fusionada como lo hace el evento pull_request. Esto previene que se ejecute el código inseguro del flujo de trabajo desde el encabezado de la solicitud de cambios, el cual pudiera alterar a tu repositorio, o borrar cualquier secreto que utilices en tu flujo de trabajo. Este evento te permite hacer cosas como crear flujos de trabajo que etiquetan y comentan las solicitudes de cambios, con base en el contenido de la carga útil del evento.

Advertencia: Se otorga un token de repositorio con permisos de lectura/escritura al evento pull_request_target y éste puede acceder a los secretos, aún cuando se activa desde una bifurcación. Aunque las ejecuciones de flujo de trabajo se ejecutan en el contexto de la base de la solicitud de cambios, debes asegurarte de que no revisas, compilas o ejecutas código no confiable desde ella con este evento. Adicionalmente, cualquier caché comparte el mismo alcance que la rama base y, para ayudar a prevenir que se vicie el caché, no deberías guardarlo si existe una posibilidad de que su contenido se haya alterado. Para obtener más información, consulta la sección "Mantener seguros tus GitHub Actions y flujos de trabajo: Prevenir solicitudes de pwn" en el sitio web de GitHub Security Lab.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
pull_request_target- assigned
- unassigned
- labeled
- unlabeled
- opened
- edited
- closed
- reopened
- synchronize
- converted_to_draft
- ready_for_review
- locked
- unlocked
- review_requested
- review_request_removed
- auto_merge_enabled
- auto_merge_disabled
Última confirmación en la rama base de la solicitud de extracciónRama base de la solicitud de extracción

Predeterminadamente, un flujo de trabajo se ejecuta únicamente cuando el tipo de actividad de un pull_request_target se encuentra como opened, synchronize, o reopened. Para activar los flujos de trabajo para más tipos de actividades, usa la palabra clave tipos. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando una solicitud de extracción ha sido assigned (asignada), opened, syncronize o reopened.

on:
  pull_request_target:
    types: [assigned, opened, synchronize, reopened]

subir

Nota: La carga disponible del webhook para las acciones de GitHub no incluye los atributos added, removed y modified en el objeto commit. Puedes recuperar el objeto de confirmación completo usando la API REST. Para obtener más información, consulta la sección "Obtener una confirmación".

Ejecuta tu flujo de trabajo cuando alguien sube a una rama de repositorio, lo que activa el evento push.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
subirn/aConfirmación subida, a menos que se elimine una rama (cuando se trata de la rama por defecto)Referencia actualizada

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento push.

on:
  push

registry_package

Ejecuta tu flujo de trabajo en cualquier momento en que un paquete publicado o actualizado. Para obtener más información, consulta "Administrar paquetes con Registro del paquete de GitHub."

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
registry_package- publicado
- actualizado
Confirmación del paquete publicadoRama o etiqueta del paquete publicado

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando un paquete ha sido publicado.

on:
  registry_package:
    types: [published]

lanzamiento

Nota: El evento release no se activará para los lanzamientos en borrador.

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento release. Más de un tipo de actividad desencadena este evento. Para obtener más información sobre la API de REST, consulta la sección "Lanzamientos".

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
lanzamiento- published
- unpublished
- created
- edited
- deleted
- prereleased
- released
Última confirmación en el lanzamiento etiquetadoEtiqueta de lanzamiento

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando un lanzamiento ha sido publish.

on:
  release:
    types: [published]

Nota: El tipo prereleased no se activará para los pre-lanzamientos publicados desde los borradores de lanzamientos, pero el tipo published sí lo hará. Si quieres que se ejecute un flujo de trabajo cuando se publiquen los lanzamientos estables y los pre-lanzamientos, mejor suscríbete a published en vez de a released y prereleased.

estado

Ejecuta tu flujo de trabajo en cualquier momento en que cambia el estado de una confirmación de Git, lo que activa el evento status. Para obtener más información acerca de la API de REST, consulta la sección "Estados".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
estadon/aÚltima confirmación en la rama predeterminadan/a

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento status.

on:
  status

observar

Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento watch. Más de un tipo de actividad desencadena este evento. Para obtener más información acerca de la API de REST, consulta la sección "Marcar con una estrella".

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
observar- comenzadoÚltima confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando alguien coloca una estrella en un repositorio, que es el tipo de actividad started que activa el evento Ver.

on:
  watch:
    types: [started]

workflow_run

Este evento ocurre cuando una ejecución de flujo de trabajo se solicita o se completa, y te permite ejecutar un flujo de trabajo con base en el resultado terminado de otro flujo de trabajo. Una ejecución de flujo de trabajo se activa sin importar el resultado del flujo de trabajo anterior.

Por ejemplo, si tu flujo de trabajo de pull_request genera artefactos de compilación, puedes crear un nuevo flujo de trabajo que utilice a workflow_run para analizar los resultados y agregar un comentario la solicitud de extracción original.

El flujo de trabajo que inició el evento workflow_run puede acceder a secretos y tokens de escritura, incluso si el flujo de trabajo anterior no podía hacerlo. Esto es útil en los casos en que el flujo de trabajo anterior no tiene privilegios intencionalmente, pero necesitas tomar una acción que requiere de privilegios en un flujo de trabajo subsecuente.

Nota: Este evento solo activará una ejecución de flujo de trabajo si el archivo de flujo de trabajo está en la rama predeterminada.

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
workflow_run- completed
- requested
Última confirmación en la rama predeterminadaRama por defecto

Por defecto, todos los tipos de actividad desencadenan un flujo de trabajo a ejecutarse. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave types. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub Actions".

Si necesitas filtrar las ramas de este evento, puedes utilizar branches o branches-ignore.

En este ejemplo, se configura un flujo de trabajo para que se ejecute después de que se complete el flujo de trabajo separado de "Run Tests".

on:
  workflow_run:
    workflows: ["Run Tests"]
    branches: [main]
    types: 
      - completed
      - requested

Para ejecutar un job de un flujo de trabajo condicionalmente con base en el resultado de la ejecución de flujo de trabajo anterior, puedes utilizar los condicionales jobs.<job_id>.if o jobs.<job_id>.steps[*].if con la conclusion de la ejecución previa. Por ejemplo:

on:
  workflow_run:
    workflows: ["Build"]
    types: [completed]

jobs:
  on-success:
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    steps:
      ...
  on-failure:
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'failure' }}
    steps:
      ...

Activar nuevos flujos de trabajo mediante un token de acceso personal

Cuando utilizas el GITHUB_TOKEN del repositorio para realizar tareas por parte de la app de GitHub Actions, los eventos que GITHUB_TOKEN desencadena no crearán una ejecución de flujo de trabajo. Esto impide que crees ejecuciones de flujo de trabajo recursivas por accidente. Por ejemplo, si un flujo de trabajo sube código utilizando el GITHUB_TOKEN del repositorio, no se ejecutará un nuevo flujo de trabajo aún si el repositorio contiene alguno configurado para ejecutarse cuando ocurran eventos de subida de información. Para obtener más información, consulta "Autenticar con el GITHUB_TOKEN".

Si deseas activar un flujo de trabajo desde una ejecución de flujo de trabajo, puedes desencadenar el evento mediante un token de acceso personal. Necesitaras crear un token de acceso personal y almacenarlo como un secreto. Para minimizar tus costos de uso de GitHub Actions, asegúrate de no crear ejecuciones de flujo de trabajo recurrentes o involuntarias. Para obtener más información sobre almacenr un token de acceso personal como secreto, consulta la sección "Crear y almacenar secretos cifrados".

¿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.