Skip to main content

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.

Acerca de los eventos que desencadenan flujos de trabajo

Los activadores de los flujos de trabajo son eventos que ocasionan que se ejecute un flujo de trabajo. Para más información sobre cómo usar desencadenadores de flujo de trabajo, consulta "Activar un flujo de trabajo".

Algunos eventos tienen tipos de actividad múltiple. Para ellos, puedes especificar qué tipos de actividad activarán una ejecución de flujo de trabajo. Para más información sobre lo que significa cada tipo de actividad, consulta "Eventos y cargas de webhook".

Nota: No todos los eventos de webhook activan flujos de trabajo.

branch_protection_rule

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
branch_protection_rule- created
- edited
- deleted
Última confirmación en la rama predeterminadaRama predeterminada

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Ejecuta tu flujo de trabajo cuando se cambian las reglas de protección de rama en el repositorio del flujo de trabajo. Para más información sobre las reglas de protección de rama, consulta "Acerca de las ramas protegidas". Para obtener información sobre las API de regla de protección de rama, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para ramas y su configuración".

Por ejemplo, puede ejecutar un flujo de trabajo cuando una regla de protección de rama ha sido created o deleted:

on:
  branch_protection_rule:
    types: [created, deleted]

check_run

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

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Ejecuta tu flujo de trabajo cuando ocurre actividad relacionada con una ejecución de verificación. Una ejecución de verificación es una prueba individual que forma parte de una suite de verificación. Para más información, consulta "Uso de la API REST para interactuar con comprobaciones". Para obtener información sobre las API de ejecución de comprobación, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para ejecuciones de comprobación".

Por ejemplo, puede ejecutar un flujo de trabajo cuando una ejecución de comprobación ha sido rerequested o completed.

on:
  check_run:
    types: [rerequested, completed]

check_suite

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
check_suite- completedÚltima confirmación en la rama predeterminadaRama predeterminada

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". Aunque solo se admite el tipo de actividad completed, la especificación del tipo de actividad mantendrá el flujo de trabajo como específico si en el futuro se agregan más tipos de actividad. De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

Este evento solo desencadenará 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 recursivos, este evento no desencadena flujos de trabajo si el conjunto de comprobaciones lo ha creado GitHub Actions.

Ejecuta tu flujo de trabajo cuando ocurre una actividad de suite de verificación. Una suite de verificación es una recolección de ejecuciones de verificación para una confirmación específica. Las suites de verificación resumen el estado y conclusión de las ejecuciones de verificación que están en la suite. Para más información, consulta "Uso de la API REST para interactuar con comprobaciones". Para obtener información sobre las API de conjunto de comprobaciones, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para conjuntos de comprobación".

Por ejemplo, puede ejecutar un flujo de trabajo cuando un conjunto de comprobaciones ha sido completed.

on:
  check_suite:
    types: [completed]

create

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
createNo aplicableÚltima confirmación en la rama o etiqueta creadaRama o etiqueta creada

Nota: No se creará un evento al crear más de tres etiquetas a la vez.

Ejecuta tu flujo de trabajo cuando alguien crea una referencia de Git (rama o etiqueta de Git) en el repositorio del flujo de trabajo. Para obtener información sobre las API para crear una referencia de Git, consulta "Mutaciones" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para referencias de Git".

Por ejemplo, puede ejecutar un flujo de trabajo cuando se produzca el evento create.

on:
  create

delete

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
deleteNo aplicableÚltima confirmación en la rama predeterminadaRama predeterminada

Note

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

Nota: No se creará un evento al eliminar más de tres etiquetas a la vez.

Ejecuta tu flujo de trabajo cuando alguien borra una referencia de Git (rama o etiqueta de Git) en el repositorio del flujo de trabajo. Para obtener información sobre las API para eliminar una referencia de Git, consulta "Mutaciones" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para referencias de Git".

Por ejemplo, puede ejecutar un flujo de trabajo cuando se produzca el evento delete.

on:
  delete

deployment

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
deploymentNo aplicableConfirmación de implementaciónRama o etiqueta que se debe desplegar (en blanco si se crea con el SHA de una confirmación)

Ejecuta tu flujo de trabajo cuando alguien crea un despliegue en el repositorio del flujo de trabajo. Es posible que las implementaciones creadas con un SHA de confirmación no tengan una referencia de Git. Para obtener información sobre las API para crear una implementación, consulta "Mutaciones" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para repositorios".

Por ejemplo, puede ejecutar un flujo de trabajo cuando se produzca el evento deployment.

on:
  deployment

deployment_status

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

Nota: Cuando el estado de una implementación se establece en inactive, no se desencadenará una ejecución de flujo de trabajo.

Ejecuta tu flujo de trabajo cuando un tercero proporciona un estado de despliegue. Es posible que las implementaciones creadas con un SHA de confirmación no tengan una referencia de Git. Para obtener información sobre las API para crear un estado de implementación, consulta "Mutaciones" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para implementaciones".

Por ejemplo, puede ejecutar un flujo de trabajo cuando se produzca el evento deployment_status.

on:
  deployment_status

discussion

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

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Nota: Los eventos de webhook para GitHub Discussions se encuentran actualmente en versión preliminar pública y están sujetos a cambios.

Ejecuta tu flujo de trabajo cuando se crea o modifica un debate ene l repositorio del mismo. Para la actividad relacionada con los comentarios sobre un debate, use el evento discussion_comment. Para más información sobre los debates, consulta "Acerca de los debates". Para obtener información sobre GraphQL API, consulta "Objetos".

Por ejemplo, puede ejecutar un flujo de trabajo cuando un debate ha sido created, edited o answered.

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

discussion_comment

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

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Nota: Los eventos de webhook para GitHub Discussions se encuentran actualmente en versión preliminar pública y están sujetos a cambios.

Ejecuta tu flujo de trabajo cuando un comentario de un debate se crea o modifica en el repositorio del mismo. Para la actividad relacionada con un debate en lugar de los comentarios sobre el debate, use el evento discussion. Para más información sobre los debates, consulta "Acerca de los debates". Para obtener información sobre GraphQL API, consulta "Objetos".

Por ejemplo, puede ejecutar un flujo de trabajo cuando el comentario de un debate haya sido created o deleted.

on:
  discussion_comment:
    types: [created, deleted]

fork

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
forkNo aplicableÚltima confirmación en la rama predeterminadaRama predeterminada

Note

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

Ejecuta tu flujo de trabajo cuando alguien bifurca un repositorio. Para obtener información sobre la API REST, consulta "Puntos de conexión de la API de REST para bifurcaciones".

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

on:
  fork

gollum

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
gollumNo aplicableÚltima confirmación en la rama predeterminadaRama predeterminada

Note

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

Ejecuta tu flujo de trabajo cuando alguien crea o actualiza una página de Wiki. Para obtener más información, vea «Acerca de las wikis».

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

on:
  gollum

issue_comment

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
issue_comment- created
- edited
- deleted
Última confirmación en la rama predeterminadaRama predeterminada

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Ejecuta tu flujo de trabajo cuando se crea, edita o borra un comentario en una propuesta o solicitud de cambios. Para obtener información sobre las API de comentario de incidencias, consulta "Objetos" en la documentación de GraphQL API, o bien "Eventos y cargas de webhook" en la documentación de la API REST.

Por ejemplo, puede ejecutar un flujo de trabajo cuando un comentario de una incidencia o solicitud de incorporación de cambios haya sido created o deleted.

on:
  issue_comment:
    types: [created, deleted]

issue_comment solo en incidencias o solo en solicitudes de incorporación de cambios

El evento issue_comment se produce para comentarios sobre incidencias y solicitudes de incorporación de cambios. Puede usar la propiedad github.event.issue.pull_request en un condicional para realizar diferentes acciones en función de si el objeto desencadenador ha sido una incidencia o una solicitud de incorporación de cambios.

Por ejemplo, este flujo de trabajo ejecutará el trabajo pr_commented solo si el evento issue_comment se ha originado en una solicitud de incorporación de cambios. Ejecutará el trabajo issue_commented solo si el evento issue_comment se ha originado en una incidencia.

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 A comment on PR $NUMBER
        env:
          NUMBER: ${{ 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 A comment on issue $NUMBER
        env:
          NUMBER: ${{ github.event.issue.number }}

issues

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

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Ejecuta tu flujo de trabajo cuando se crea o modifica una propuesta en el repositorio de un flujo de trabajo. Para la actividad relacionada con los comentarios de una incidencia, use el evento issue_comment. Para más información sobre las incidencias, consulta "Acerca de las propuestas". Para obtener información sobre las API de incidencias, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para incidencias".

Por ejemplo, puede ejecutar un flujo de trabajo cuando una incidencia ha sido opened, edited o milestoned.

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

label

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
label- created
- edited
- deleted
Última confirmación en la rama predeterminadaRama predeterminada

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Ejecuta tu flujo de trabajo cuando se crea o modifica una etiqueta en el repositorio del mismo. Para más información sobre las etiquetas, consulta "Administrar las etiquetas". Para obtener información sobre las API de etiquetas, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para etiquetas".

Si quiere ejecutar el flujo de trabajo cuando se agrega o se quita una etiqueta de una incidencia, una solicitud de incorporación de cambios o un debate, use los tipos de actividad labeled o unlabeled para los eventos issues, pull_request, pull_request_target o discussion en su lugar.

Por ejemplo, puede ejecutar un flujo de trabajo cuando una etiqueta ha sido created o deleted.

on:
  label:
    types: [created, deleted]

merge_group

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
merge_groupchecks_requestedSHA del grupo de fusión mediante combinaciónReferencia del grupo de fusión mediante combinación

Notas:

  • Más de un tipo de actividad desencadena este evento. Aunque solo se admite el tipo de actividad checks_requested, la especificación del tipo de actividad mantendrá el flujo de trabajo como específico si en el futuro se agregan más tipos de actividad. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».
  • Si el repositorio usa GitHub Actions para realizar las comprobaciones necesarias en las solicitudes de incorporación de cambios en el repositorio, debe actualizar los flujos de trabajo para incluir el evento merge_group como desencadenador adicional. De lo contrario, las comprobaciones de estado no se desencadenarán al agregar una solicitud de incorporación de cambios a una cola de fusión. Se producirá un error en la fusión mediante combinación, ya que no se notificará la comprobación de estado necesaria. El evento merge_group es independiente de los eventos pull_request y push.

Ejecuta el flujo de trabajo cuando se agrega una solicitud de incorporación de cambios a una cola de fusión mediante combinación, que agrega la solicitud de incorporación de cambios a un grupo de fusión mediante combinación. Para más información, consulta "Combinación de una solicitud de incorporación de cambios con una cola de fusión mediante combinación".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se haya producido la actividad checks_requested.

on:
  pull_request:
    branches: [ "main" ]
  merge_group:
    types: [checks_requested]

milestone

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

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Ejecuta tu flujo de trabajo cuando se crea o modifica un hito en el repositorio de tu flujo de trabajo. Para más información sobre los hitos, consulta "Acerca de los hitos". Para obtener información sobre las API de hitos, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de API de REST para hitos".

Si quiere ejecutar el flujo de trabajo cuando se agrega o se quita una incidencia de un hito, use los tipos de actividad milestoned o demilestoned para el evento issues en su lugar.

Por ejemplo, puede ejecutar un flujo de trabajo cuando un hito ha sido opened o deleted.

on:
  milestone:
    types: [opened, deleted]

page_build

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
page_buildNo aplicableÚltima confirmación en la rama predeterminadaNo aplicable

Note

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

Ejecuta tu flujo de trabajo cuando alguien sube información a una rama que sea la fuente de publicación de GitHub Pages si GitHub Pages se encuentra habilitado para el repositorio. Para más información sobre los orígenes de publicación de GitHub Pages, consulta "Configurar una fuente de publicación para tu sitio de Páginas de GitHub". Para obtener información sobre la API REST, consulta "Puntos de conexión de la API de REST para repositorios".

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

on:
  page_build

public

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
publicNo aplicableÚltima confirmación en la rama predeterminadaRama predeterminada

Note

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

Ejecuta tu flujo de trabajo cuando el repositorio de tu flujo de trabajo cambia de privado a público. Para obtener información sobre la API REST, consulta "Puntos de conexión de la API de REST para repositorios".

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

on:
  public

pull_request

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
pull_request- assigned
- unassigned
- labeled
- unlabeled
- opened
- edited
- closed
- reopened
- synchronize
- converted_to_draft
- locked
- unlocked
- enqueued
- dequeued
- milestoned
- demilestoned
- ready_for_review
- review_requested
- review_request_removed
- auto_merge_enabled
- auto_merge_disabled
Última confirmación de combinación en la rama GITHUB_REFRama de combinación de solicitud de incorporación de cambios refs/pull/PULL_REQUEST_NUMBER/merge

Notas:

  • Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta “Eventos y cargas de webhook”. De forma predeterminada, un flujo de trabajo solo se ejecuta cuando el tipo de actividad de un evento pull_request es opened, synchronizeo reopened. Para desencadenar flujos de trabajo mediante otros tipos de actividad, use la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

  • Los flujos de trabajo no se ejecutarán en la actividad pull_request si la solicitud de incorporación de cambios tiene un conflicto de combinación. El conflicto de fusión se debe resolver primero.

    Por el contrario, los flujos de trabajo con el evento pull_request_target se ejecutarán incluso si la solicitud de incorporación de cambios tiene un conflicto de combinación. Antes de usar el desencadenador pull_request_target, debe tener en cuenta los riesgos de seguridad. Para obtener más información, vea pull_request_target.

  • La carga del evento de webhook pull_request está vacía para las solicitudes de incorporación de cambios combinadas y las solicitudes de incorporación de cambios procedentes de repositorios bifurcadas.

  • El valor de GITHUB_REF varía para una solicitud de incorporación de cambios cerrada en función de si la solicitud de incorporación de cambios se ha combinado o no. Si se cerró una solicitud de incorporación de cambios pero no se combinó, será refs/pull/PULL_REQUEST_NUMBER/merge. Si se cerró una solicitud de incorporación de cambios como resultado de combinarse, será el ref completo de la rama en la que se combinó, por ejemplo /refs/heads/main.

Ejecuta tu flujo de trabajo cuando ocurre alguna actividad en la solicitud de trabajo del repositorio del flujo de trabajo. Por ejemplo, si no se especifican tipos de actividad, el flujo de trabajo se ejecutará cuando se abra o vuelva a abrir una solicitud de cambios o cuando se actualice la rama de encabezado de la misma. Para la actividad relacionada con las revisiones de solicitudes de incorporación de cambios, comentarios de revisión de solicitudes de incorporación de cambios o comentarios de solicitud de incorporación de cambios, use en su lugar los eventos pull_request_review, pull_request_review_comment o issue_comment. Para obtener información sobre las API de solicitud de cambios, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para solicitudes de incorporación de cambios".

Tenga en cuenta que GITHUB_SHA para este evento es la última confirmación de combinación de la rama de combinación de solicitudes de incorporación de cambios. Si quiere obtener el identificador de la última confirmación en la rama principal de la solicitud de incorporación de cambios, use github.event.pull_request.head.sha en su lugar.

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se haya abierto o vuelto a abrir una solicitud de cambios.

on:
  pull_request:
    types: [opened, reopened]

Puedes utilizar el contexto del evento para controlar aún más cuándo se ejecutarán los jobs en tu flujo de trabajo. Por ejemplo, este flujo de trabajo se ejecutará cuando se solicite una revisión en una solicitud de incorporación de cambios, pero el trabajo specific_review_requested solo se ejecutará cuando se solicite una revisión de octo-team.

on:
  pull_request:
    types: [review_requested]
jobs:
  specific_review_requested:
    runs-on: ubuntu-latest
    if: ${{ github.event.requested_team.name == 'octo-team'}}
    steps:
      - run: echo 'A review from octo-team was requested'

Ejecución del flujo de trabajo pull_request en función de la rama base o de encabezado de una solicitud de incorporación de cambios

Puede usar el filtro branches o branches-ignore a fin de configurar el flujo de trabajo para que solo se ejecute en solicitudes de incorporación de cambios destinadas a ramas específicas. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Por ejemplo, este flujo de trabajo se ejecutará cuando alguien abra una solicitud de incorporación de cambios destinada a una rama cuyo nombre empiece por releases/:

on:
  pull_request:
    types:
      - opened
    branches:
      - 'releases/**'

Nota: Si usa los filtros branches y paths, el flujo de trabajo solo se ejecutará cuando se cumplan ambos filtros. Por ejemplo, el siguiente flujo de trabajo solo se ejecutará cuando una solicitud de incorporación de cambios que incluya un cambio en un archivo JavaScript (.js) se abra en una rama cuyo nombre comience por releases/:

on:
  pull_request:
    types:
      - opened
    branches:
      - 'releases/**'
    paths:
      - '**.js'

Para ejecutar un trabajo en función del nombre de la rama principal de la solicitud de incorporación de cambios (no el nombre de la rama base de la solicitud de incorporación de cambios), use el contexto github.head_ref en una condicional. Por ejemplo, este flujo de trabajo se ejecutará cada vez que se abra una solicitud de incorporación de cambios, pero el trabajo run_if solo se ejecutará si el inicio de la solicitud de incorporación de cambios es una rama cuyo nombre empieza por releases/:

on:
  pull_request:
    types:
      - opened
jobs:
  run_if:
    if:  startsWith(github.head_ref, 'releases/')
    runs-on: ubuntu-latest
    steps:
      - run: echo "The head of this PR starts with 'releases/'"

Ejecución del flujo de trabajo pull_request en función de los archivos que cambiaron en una solicitud de incorporación de cambios

También puedes configurar tu flujo de trabajo para que se ejecute cuando una solicitud de cambios cambie archivos específicos. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Por ejemplo, este flujo de trabajo se ejecutará cuando una solicitud de incorporación de cambios incluya un cambio en un archivo JavaScript (.js):

on:
  pull_request:
    paths:
      - '**.js'

Nota: Si usa los filtros branches y paths, el flujo de trabajo solo se ejecutará cuando se cumplan ambos filtros. Por ejemplo, el siguiente flujo de trabajo solo se ejecutará cuando una solicitud de incorporación de cambios que incluya un cambio en un archivo JavaScript (.js) se abra en una rama cuyo nombre comience por releases/:

on:
  pull_request:
    types:
      - opened
    branches:
      - 'releases/**'
    paths:
      - '**.js'

Ejecución del flujo de trabajo pull_request cuando se fusiona una solicitud de incorporación de cambios

Cuando se fusiona una solicitud de cambios, esta se cierra automáticamente. Para ejecutar un flujo de trabajo cuando se combina una solicitud de incorporación de cambios, use el tipo de evento pull_request closed junto con una condicional que compruebe el valor merged del evento. Por ejemplo, el siguiente flujo de trabajo se ejecutará cada que se cierre una solicitud de cambios. El trabajo if_merged solo se ejecutará si la solicitud de incorporación de cambios también se ha combinado.

on:
  pull_request:
    types:
      - closed

jobs:
  if_merged:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
    - run: |
        echo The PR was merged

Flujos de trabajo en repositorios bifurcados

Los flujos de trabajo no se ejecutan predeterminadamente en los repositorios bifurcados. Debe habilitar Acciones de GitHub en la pestaña Acciones del repositorio bifurcado.

Con la excepción de GITHUB_TOKEN, los secretos no se pasan al ejecutor cuando se desencadena un flujo de trabajo desde un repositorio bifurcado. GITHUB_TOKEN tiene permisos de solo lectura en las solicitudes de incorporación de cambios de los repositorios bifurcados. Para obtener más información, vea «Autenticación automática de tokens».

Eventos de solicitud de extracción para repositorios bifurcados

Para las solicitudes de incorporación de cambios de un repositorio bifurcado al repositorio base, GitHub envía los eventos pull_request, issue_comment, pull_request_review_comment, pull_request_reviewy pull_request_target al repositorio base. No existirán eventos de solicitudes de cambio en el repositorio bifurcado.

Cuando un colaborador primerizo envía una solicitud de incorporación de cambios a un repositorio público, es posible que un mantenedor con acceso de escritura tenga que aprobar los flujos de trabajo en ejecución en la solicitud de incorporación de cambios. Para obtener más información, vea «Aprobar ejecuciones de flujo de trabajo desde bifurcaciones públicas».

Para las solicitudes de incorporación de cambios de un repositorio bifurcado en un repositorio privado, los flujos de trabajo solo se ejecutan cuando están habilitados; consulta "Administrar los ajustes de las GitHub Actions de un repositorio".

Nota: Los flujos de trabajo que se desencadenan mediante solicitudes de incorporación de cambios de Dependabot se tratan como si procedieran de un repositorio bifurcado y también están sujetos a estas restricciones.

pull_request_comment (use issue_comment)

Para ejecutar el flujo de trabajo cuando se crea, edita o elimina un comentario en una solicitud de incorporación de cambios (no en la diferencia de una solicitud de incorporación de cambios), use el evento issue_comment. Para la actividad relacionada con revisiones de solicitudes de incorporación de cambios o comentarios de revisión de solicitudes de incorporación de cambios, use los eventos pull_request_review o pull_request_review_comment.

pull_request_review

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
pull_request_review- submitted
- edited
- dismissed
Última confirmación de combinación en la rama GITHUB_REFRama de combinación de solicitud de incorporación de cambios refs/pull/PULL_REQUEST_NUMBER/merge

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Ejecuta tu flujo de trabajo cuando se emite, edita o descarta una revisión de una solicitud de cambios. Una revisión de solicitud de cambios es un grupo de comentarios de dicha revisión junto con un comentario del cuerpo y un estado. Para la actividad relacionada con comentarios de revisión de solicitudes de incorporación de cambios o comentarios de solicitud de incorporación de cambios, use en su lugar los eventos pull_request_review_comment o issue_comment. Para obtener información sobre las API de revisión de solicitud de cambios, consulte "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para solicitudes de incorporación de cambios".

Por ejemplo, puede ejecutar un flujo de trabajo cuando una revisión de solicitud de incorporación de cambios ha sido edited o dismissed.

on:
  pull_request_review:
    types: [edited, dismissed]

Ejecutar un flujo de trabajo cuando se aprueba una solicitud de cambios

Para ejecutar el flujo de trabajo cuando se ha aprobado una solicitud de incorporación de cambios, puede desencadenar el flujo de trabajo con el tipo submitted del evento pull_request_review y, después, comprobar el estado de revisión con la propiedad github.event.review.state. Por ejemplo, este flujo de trabajo se ejecutará siempre que se envíe una revisión de solicitud de incorporación de cambios, pero el trabajo approved solo se ejecutará si la revisión enviada es de aprobación:

on:
  pull_request_review:
    types: [submitted]

jobs:
  approved:
    if: github.event.review.state == 'approved'
    runs-on: ubuntu-latest
    steps:
      - run: echo "This PR was approved"

Flujos de trabajo en repositorios bifurcados

Los flujos de trabajo no se ejecutan predeterminadamente en los repositorios bifurcados. Debe habilitar Acciones de GitHub en la pestaña Acciones del repositorio bifurcado.

Con la excepción de GITHUB_TOKEN, los secretos no se pasan al ejecutor cuando se desencadena un flujo de trabajo desde un repositorio bifurcado. GITHUB_TOKEN tiene permisos de solo lectura en las solicitudes de incorporación de cambios de los repositorios bifurcados. Para obtener más información, vea «Autenticación automática de tokens».

Eventos de solicitud de extracción para repositorios bifurcados

Para las solicitudes de incorporación de cambios de un repositorio bifurcado al repositorio base, GitHub envía los eventos pull_request, issue_comment, pull_request_review_comment, pull_request_reviewy pull_request_target al repositorio base. No existirán eventos de solicitudes de cambio en el repositorio bifurcado.

Cuando un colaborador primerizo envía una solicitud de incorporación de cambios a un repositorio público, es posible que un mantenedor con acceso de escritura tenga que aprobar los flujos de trabajo en ejecución en la solicitud de incorporación de cambios. Para obtener más información, vea «Aprobar ejecuciones de flujo de trabajo desde bifurcaciones públicas».

Para las solicitudes de incorporación de cambios de un repositorio bifurcado en un repositorio privado, los flujos de trabajo solo se ejecutan cuando están habilitados; consulta "Administrar los ajustes de las GitHub Actions de un repositorio".

Nota: Los flujos de trabajo que se desencadenan mediante solicitudes de incorporación de cambios de Dependabot se tratan como si procedieran de un repositorio bifurcado y también están sujetos a estas restricciones.

pull_request_review_comment

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
pull_request_review_comment- created
- edited
- deleted
Última confirmación de combinación en la rama GITHUB_REFRama de combinación de solicitud de incorporación de cambios refs/pull/PULL_REQUEST_NUMBER/merge

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Ejecuta tu flujo de trabajo cuando se modifica un comentario de una revisión de solicitud de cambios. Un comentario de revisión de una solicitud de cambios es un comentario en el diff de dicha solicitud. Para la actividad relacionada con revisiones de solicitudes de incorporación de cambios o comentarios de solicitudes de incorporación de cambios, use los eventos pull_request_review o issue_comment en su lugar. Para obtener información sobre las API de comentarios de revisión de solicitud de cambios, consulte "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para solicitudes de incorporación de cambios".

Por ejemplo, puede ejecutar un flujo de trabajo cuando un comentario de una revisión de solicitud de incorporación de cambios ha sido created o deleted.

on:
  pull_request_review_comment:
    types: [created, deleted]

Flujos de trabajo en repositorios bifurcados

Los flujos de trabajo no se ejecutan predeterminadamente en los repositorios bifurcados. Debe habilitar Acciones de GitHub en la pestaña Acciones del repositorio bifurcado.

Con la excepción de GITHUB_TOKEN, los secretos no se pasan al ejecutor cuando se desencadena un flujo de trabajo desde un repositorio bifurcado. GITHUB_TOKEN tiene permisos de solo lectura en las solicitudes de incorporación de cambios de los repositorios bifurcados. Para obtener más información, vea «Autenticación automática de tokens».

Eventos de solicitud de extracción para repositorios bifurcados

Para las solicitudes de incorporación de cambios de un repositorio bifurcado al repositorio base, GitHub envía los eventos pull_request, issue_comment, pull_request_review_comment, pull_request_reviewy pull_request_target al repositorio base. No existirán eventos de solicitudes de cambio en el repositorio bifurcado.

Cuando un colaborador primerizo envía una solicitud de incorporación de cambios a un repositorio público, es posible que un mantenedor con acceso de escritura tenga que aprobar los flujos de trabajo en ejecución en la solicitud de incorporación de cambios. Para obtener más información, vea «Aprobar ejecuciones de flujo de trabajo desde bifurcaciones públicas».

Para las solicitudes de incorporación de cambios de un repositorio bifurcado en un repositorio privado, los flujos de trabajo solo se ejecutan cuando están habilitados; consulta "Administrar los ajustes de las GitHub Actions de un repositorio".

Nota: Los flujos de trabajo que se desencadenan mediante solicitudes de incorporación de cambios de Dependabot se tratan como si procedieran de un repositorio bifurcado y también están sujetos a estas restricciones.

pull_request_target

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
pull_request- 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

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, un flujo de trabajo solo se ejecuta cuando el tipo de actividad de un evento pull_request_target es opened, synchronizeo reopened. Para desencadenar flujos de trabajo mediante otros tipos de actividad, use la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Ejecuta tu flujo de trabajo cuando ocurre alguna actividad en la solicitud de trabajo del repositorio del flujo de trabajo. Por ejemplo, si no se especifican tipos de actividad, el flujo de trabajo se ejecutará cuando se abra o vuelva a abrir una solicitud de cambios o cuando se actualice la rama de encabezado de la misma.

Este evento se ejecuta en el contexto de la base de la solicitud de incorporación de cambios, en lugar de en el contexto de la confirmación de combinación, como lo hace el evento pull_request. Esto previene la ejecución del código no seguro desde el encabezado de la solicitud de cambios que pudiera alterar tu repositorio o robar cualquier secreto que utilices en tu flujo de trabajo. Este evento permite que tu flujo de trabajo haga cosas como etiquetar o comentar en las solicitudes de cambios de las bifurcaciones. Evita utilizar este evento si necesitas compilar o ejecutar código desde la solicitud de cambios.

Para garantizar la seguridad del repositorio, es posible que las ramas con nombres que coincidan con determinados patrones (como aquellos que tengan un aspecto similar a los SHA) no desencadenen flujos de trabajo con el evento pull_request_target.

Advertencia: En el caso de los flujos de trabajo desencadenados por el evento pull_request_target, se concede a GITHUB_TOKEN el permiso de repositorio de lectura y escritura, a menos que se especifique la clave permissions y el flujo de trabajo pueda acceder a secretos, incluso cuando se desencadene 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. Para ayudar a prevenir el envenenamiento del caché, no debes guardar el caché si existe la posibilidad de que su contenido se haya alterado. Para más información, vea "Mantenimiento de la seguridad de flujos de trabajo y Acciones de GitHub: prevención de solicitudes pwn" en el sitio web de GitHub Security Lab.

Por ejemplo, puede ejecutar un flujo de trabajo cuando una solicitud de incorporación de cambios ha sido assigned, opened, synchronize o reopened.

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

Ejecución del flujo de trabajo pull_request_target en función de la rama base o de encabezado de una solicitud de incorporación de cambios

Puede usar el filtro branches o branches-ignore a fin de configurar el flujo de trabajo para que solo se ejecute en solicitudes de incorporación de cambios destinadas a ramas específicas. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Por ejemplo, este flujo de trabajo se ejecutará cuando alguien abra una solicitud de incorporación de cambios destinada a una rama cuyo nombre empiece por releases/:

on:
  pull_request_target:
    types:
      - opened
    branches:
      - 'releases/**'

Nota: Si usa los filtros branches y paths, el flujo de trabajo solo se ejecutará cuando se cumplan ambos filtros. Por ejemplo, el siguiente flujo de trabajo solo se ejecutará cuando una solicitud de incorporación de cambios que incluya un cambio en un archivo JavaScript (.js) se abra en una rama cuyo nombre comience por releases/:

on:
  pull_request_target:
    types:
      - opened
    branches:
      - 'releases/**'
    paths:
      - '**.js'

Para ejecutar un trabajo en función del nombre de la rama principal de la solicitud de incorporación de cambios (no el nombre de la rama base de la solicitud de incorporación de cambios), use el contexto github.head_ref en una condicional. Por ejemplo, este flujo de trabajo se ejecutará cada vez que se abra una solicitud de incorporación de cambios, pero el trabajo run_if solo se ejecutará si el inicio de la solicitud de incorporación de cambios es una rama cuyo nombre empieza por releases/:

on:
  pull_request_target:
    types:
      - opened
jobs:
  run_if:
    if:  startsWith(github.head_ref, 'releases/')
    runs-on: ubuntu-latest
    steps:
      - run: echo "The head of this PR starts with 'releases/'"

Ejecución del flujo de trabajo pull_request_target en función de los archivos que cambiaron en una solicitud de incorporación de cambios

Puede usar el filtro paths o paths-ignore a fin de configurar el flujo de trabajo para que se ejecute cuando una solicitud de incorporación de cambios modifique archivos específicos. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Por ejemplo, este flujo de trabajo se ejecutará cuando una solicitud de incorporación de cambios incluya un cambio en un archivo JavaScript (.js):

on:
  pull_request_target:
    paths:
      - '**.js'

Nota: Si usa los filtros branches y paths, el flujo de trabajo solo se ejecutará cuando se cumplan ambos filtros. Por ejemplo, el siguiente flujo de trabajo solo se ejecutará cuando una solicitud de incorporación de cambios que incluya un cambio en un archivo JavaScript (.js) se abra en una rama cuyo nombre comience por releases/:

on:
  pull_request_target:
    types:
      - opened
    branches:
      - 'releases/**'
    paths:
      - '**.js'

Ejecución del flujo de trabajo pull_request_target cuando se fusiona una solicitud de incorporación de cambios

Cuando se fusiona una solicitud de cambios, esta se cierra automáticamente. Para ejecutar un flujo de trabajo cuando se combina una solicitud de incorporación de cambios, use el tipo de evento pull_request_target closed junto con una condicional que compruebe el valor merged del evento. Por ejemplo, el siguiente flujo de trabajo se ejecutará cada que se cierre una solicitud de cambios. El trabajo if_merged solo se ejecutará si la solicitud de incorporación de cambios también se ha combinado.

on:
  pull_request_target:
    types:
      - closed

jobs:
  if_merged:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
    - run: |
        echo The PR was merged

push

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
pushNo aplicableConsejo confirmación insertada en ref. Al eliminar una rama, el SHA de la ejecución del flujo de trabajo (y sus referencias asociadas) se revierte a la rama predeterminada del repositorio.Referencia actualizada

Nota: La carga de webhook disponible para Acciones de GitHub no incluye los atributos added, removed y modified en el objeto commit. Puedes recuperar el objeto de confirmación completo utilizando la API. Para obtener más información, consulta "Objetos" en la documentación de la API de GraphQL o "Puntos de conexión de la API de REST para confirmaciones".

Nota: Los eventos no se crearán si se insertan más de 5000 ramas a la vez. No se crearán eventos para etiquetas si se insertan más de tres etiquetas a la vez.

Ejecuta el flujo de trabajo al enviar una confirmación o una etiqueta, o al crear un repositorio a partir de una plantilla.

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

on:
  push

Nota: Cuando un evento de webhook push desencadena una ejecución de flujo de trabajo, el campo "insertado por" de la interfaz de usuario de Acciones muestra el insertador y no el autor o el confirmador. Sin embargo, si los cambios se insertan en un repositorio mediante la autenticación SSH con una clave de implementación, el campo "insertado por" será el administrador del repositorio que comprobó la clave de implementación cuando se agregó a un repositorio.

Ejecutar tu flujo de trabajo solo cuando ocurra una subida de información a ramas específicas

Puede usar el filtro branches o branches-ignore a fin de configurar el flujo de trabajo para que solo se ejecute cuando se inserten ramas específicas. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Por ejemplo, este flujo de trabajo se ejecutará cuando alguien realice inserciones en main o en una rama que comience por releases/.

on:
  push:
    branches:
      - 'main'
      - 'releases/**'

Nota: Si usa los filtros branches y paths, el flujo de trabajo solo se ejecutará cuando se cumplan ambos filtros. Por ejemplo, el siguiente flujo de trabajo solo se ejecutará cuando una inserción que incluya un cambio en un archivo JavaScript (.js) se realice en una rama cuyo nombre comience por releases/:

on:
  push:
    branches:
      - 'releases/**'
    paths:
      - '**.js'

Ejecutar tu flujo de trabajo únicamente cuando ocurra una subida de etiquetas específicas

Puedes usar el filtro tags o tags-ignore para configurar el flujo de trabajo para que solo se ejecute cuando se inserten etiquetas específicas. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Por ejemplo, este flujo de trabajo se ejecutará cuando alguien inserte una etiqueta que comience con v1..

on:
  push:
    tags:
      - v1.**

Ejecutar tu flujo de trabajo únicamente cuando una subida de información afecta archivos específicos

Puede usar el filtro paths o paths-ignore a fin de configurar el flujo de trabajo para que se ejecute cuando se produzca una inserción en archivos específicos. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Por ejemplo, este flujo de trabajo se ejecutará cuando alguien inserte un cambio en un archivo de JavaScript (.js):

on:
  push:
    paths:
      - '**.js'

Nota: Si usa los filtros branches y paths, el flujo de trabajo solo se ejecutará cuando se cumplan ambos filtros. Por ejemplo, el siguiente flujo de trabajo solo se ejecutará cuando una inserción que incluya un cambio en un archivo JavaScript (.js) se realice en una rama cuyo nombre comience por releases/:

on:
  push:
    branches:
      - 'releases/**'
    paths:
      - '**.js'

registry_package

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

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Nota: Al insertar imágenes de contenedor de arquitectura múltiple, este evento se produce una vez por manifiesto, por lo que es posible que observes que el flujo de trabajo se desencadena varias veces. Para mitigar esto y ejecutar solo el trabajo del evento que contiene la información de etiqueta de imagen real, usa un condicional:

jobs:
    job_name:
        if: ${{ github.event.registry_package.package_version.container_metadata.tag.name != '' }}

Ejecuta tu flujo de trabajo cuando ocurre actividad relacionada con el GitHub Packages en tu repositorio. Para más información, vea "Documentación de GitHub Packages".

Por ejemplo, puedes ejecutar un flujo de trabajo cuando se haya realizado la acción published sobre un nuevo paquete.

on:
  registry_package:
    types: [published]

release

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
release- published
- unpublished
- created
- edited
- deleted
- prereleased
- released
Última confirmación en el lanzamiento etiquetadoReferencia de etiqueta de versión refs/tags/<tag_name>

Nota: Más de un tipo de actividad desencadena este evento. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Nota: Los flujos de trabajo no se desencadenan para los tipos de actividad created, edited o deleted para versiones de borrador. Cuando creas tu lanzamiento mediante el la IU del buscador de GitHub, este podría guardarse automáticamente como borrador.

Nota: El tipo prereleased no se desencadenará para las versiones preliminares publicadas a partir de versiones de borrador, pero el tipo published sí. Si quiere que un flujo de trabajo se ejecute cuando se publiquen versiones estables y preliminares, debe suscribirse a published en lugar de released y prereleased.

Ejecuta tu flujo de trabajo cuando ocurre una actividad de lanzamiento en tu repositorio. Para obtener información sobre las API de versiones, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para lanzamientos y recursos de versión" en la documentación de la API REST.

Por ejemplo, puede ejecutar un flujo de trabajo cuando una versión ha sido published.

on:
  release:
    types: [published]

repository_dispatch

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
repository_dispatchPersonalizadoÚltima confirmación en la rama predeterminadaRama predeterminada

Note

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

Puede usar la API de GitHub para desencadenar un evento de webhook denominado repository_dispatch cuando quiera desencadenar un flujo de trabajo para la actividad que se produce fuera de GitHub. Para obtener más información, vea «Puntos de conexión de la API de REST para repositorios».

Al realizar una solicitud para crear un evento repository_dispatch, debe especificar event_type para describir el tipo de actividad. De manera predeterminada, todos los tipos de actividad repository_dispatch desencadenan un flujo de trabajo para ejecutarse. Puede usar la palabra clave types para limitar la ejecución del flujo de trabajo cuando se envía un valor event_type específico en la carga del webhook repository_dispatch.

on:
  repository_dispatch:
    types: [test_result]

Nota: El valor event_type está limitado a 100 caracteres.

Los datos que envíe mediante el parámetro client_payload estarán disponibles en el contexto github.event del flujo de trabajo. Por ejemplo, si envías este cuerpo de solicitud cuando creas un evento de despacho de repositorio:

{
  "event_type": "test_result",
  "client_payload": {
    "passed": false,
    "message": "Error: timeout"
  }
}

luego, puedes acceder a la carga útil en un flujo de trabajo como este:

on:
  repository_dispatch:
    types: [test_result]

jobs:
  run_if_failure:
    if: ${{ !github.event.client_payload.passed }}
    runs-on: ubuntu-latest
    steps:
      - env:
          MESSAGE: ${{ github.event.client_payload.message }}
        run: echo $MESSAGE

Notas:

  • El número máximo de propiedades de nivel superior en client_payload es 10.
  • Esta carga puede contener 65 535 caracteres como máximo.

schedule

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
No aplicableNo aplicableÚltima confirmación en la rama predeterminadaRama predeterminada

Notas:

  • El evento schedule se puede retrasar durante periodos de cargas altas de ejecuciones de flujo de trabajo de GitHub Actions. Los tiempos de carga alta incluyen el inicio de cada hora. Si la carga es lo suficientemente alta, es posible que se quiten algunos trabajos en cola. Para aminorar la posibilidad de los retrasos, programa tu flujo de trabajo para que se ejecute en una porción diferente de la hora.

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

  • Los flujos de trabajo programados solo se ejecutarán en la rama predeterminada.

  • En un repositorio público, los flujos de trabajo programados se inhabilitan automáticamente cuando no ha habido actividad en el repositorio por 60 días. Para obtener información sobre volver a habilitar un flujo de trabajo deshabilitado, consulte "Deshabilitación y habilitación de un flujo de trabajo".

  • Cuando el último usuario confirmado en una programación cron de un flujo de trabajo es eliminado de la organización, el flujo de trabajo programado se deshabilitará. Si un usuario con permisos write para el repositorio realiza una confirmación que cambia la programación cron, el flujo de trabajo programado se volverá a activar. Tenga en cuenta que, en esta situación, el flujo de trabajo no se reactiva mediante ningún cambio en el archivo de flujo de trabajo; debe modificar el valor cron y confirmar este cambio.

    Ejemplo:

    on:
      schedule:
        - cron: "15 4,5 * * *"   # <=== Change this value
    

El evento schedule permite desencadenar un flujo de trabajo a una hora programada.

Puede programar un flujo de trabajo para que se ejecute a horas UTC específicas mediante la sintaxis cron de 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 * * *'

Varios eventos schedule pueden desencadenar un único flujo de trabajo. Puede acceder al evento de programación que desencadenó el flujo de trabajo mediante el contexto github.event.schedule. En este ejemplo se desencadena el flujo de trabajo para que se ejecute a las 5:30 UTC de lunes a jueves, pero omite el paso Not on Monday or Wednesday para el lunes y el miércoles.

on:
  schedule:
    - cron: '30 5 * * 1,3'
    - cron: '30 5 * * 2,4'

jobs:
  test_schedule:
    runs-on: ubuntu-latest
    steps:
      - name: Not on Monday or Wednesday
        if: github.event.schedule != '30 5 * * 1,3'
        run: echo "This step will be skipped on Monday and Wednesday"
      - name: Every time
        run: echo "This step will always run"

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

┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * *

Puedes usar estos operadores en cualquiera de los cinco campos:

OperadorDescripciónEjemplo
*Cualquier valor15 * * * * se ejecuta a cada minuto 15 de cada hora de cada día.
,Separador de la lista de valores2,10 4,5 * * * se ejecuta en el minuto 2 y 10 de la 4ª y 5ª hora de cada día.
-Rango de valores30 4-6 * * * se ejecuta en el minuto 30 de la 4ª, 5ª y 6ª hora.
/Valores del paso20/15 * * * * se ejecuta cada 15 minutos a partir del minuto 20 hasta el 59 (los minutos 20, 35 y 50).

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

Puede usar crontab guru para ayudar a generar la sintaxis cron y confirmar la hora en que se ejecutará. Para ayudarle a empezar, también hay 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, vea «Notificaciones para ejecuciones de flujo de trabajo».

status

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
statusNo aplicableÚltima confirmación en la rama predeterminadaNo aplicable

Note

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

Ejecuta tu flujo de trabajo cuando cambia el estado de una confirmación de Git. Por ejemplo, las confirmaciones se pueden marcar como error, failure, pending o success. Si quiere proporcionar más detalles sobre el cambio de estado, es posible que le interese usar el evento check_run. Para obtener información sobre las API de estado de confirmación, consulta "Objetos" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para confirmaciones".

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

on:
  status

Si quiere ejecutar un trabajo en el flujo de trabajo en función del nuevo estado de confirmación, puede usar el contexto github.event.state. Por ejemplo, el siguiente flujo de trabajo se desencadena cuando cambia un estado de confirmación, pero el trabajo if_error_or_failure solo se ejecuta si el nuevo estado de confirmación es error o failure.

on:
  status
jobs:
  if_error_or_failure:
    runs-on: ubuntu-latest
    if: >-
      github.event.state == 'error' ||
      github.event.state == 'failure'
    steps:
      - env:
          DESCRIPTION: ${{ github.event.description }}
        run: |
          echo The status is error or failed: $DESCRIPTION

watch

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
watch- startedÚltima confirmación en la rama predeterminadaRama predeterminada

Nota: Más de un tipo de actividad desencadena este evento. Aunque solo se admite el tipo de actividad started, la especificación del tipo de actividad mantendrá el flujo de trabajo como específico si en el futuro se agregan más tipos de actividad. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Ejecuta tu flujo de trabajo cuando su repositorio se marcó como favorito. Para obtener información sobre las API de solicitud de cambios, consulta "Mutaciones" en la documentación de GraphQL API, o bien "Puntos de conexión de la API de REST para marcar con estrella".

Por ejemplo, puede ejecutar un flujo de trabajo cuando alguien marca un repositorio con una estrella, que es el tipo de actividad started para un evento de observación.

on:
  watch:
    types: [started]

workflow_call

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
El mismo que el flujo de trabajo que llamaNo aplicableEl mismo que el flujo de trabajo que llamaEl mismo que el flujo de trabajo que llama

workflow_call se usa para indicar que otro flujo de trabajo puede llamar a un flujo de trabajo. Cuando un flujo de trabajo se desencadena con el workflow_call, la carga del evento en el flujo de trabajo al que se llama es la misma que la del flujo de trabajo que realiza la llamada. Para más información, consulta "Reutilización de flujos de trabajo".

El siguiente ejemplo solo ejecuta el flujo de trabajo cuando se le llama desde otro flujo de trabajo:

on: workflow_call

workflow_dispatch

Carga del evento WebhookTipos de actividadGITHUB_SHAGITHUB_REF
workflow_dispatchNo aplicableÚltima confirmación en la rama o etiqueta GITHUB_REFRama o etiqueta que recibió el envío

Note

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

Para permitir que un flujo de trabajo se desencadene manualmente, debes configurar el evento workflow_dispatch. Puedes activar un flujo de trabajo manualmente utilizando la API de GitHub, el GitHub CLI o la interfaz de buscador de GitHub. Para obtener más información, vea «Ejecutar un flujo de trabajo manualmente».

on: workflow_dispatch

Proporcionar entradas

Puedes configurar propiedades de entrada definidas personalmente, valores de entrada predeterminados y entradas requeridas para el evento directamente en tu flujo de trabajo. Al desencadenar el evento, puede proporcionar ref y cualquier elemento inputs. Cuando se ejecuta el flujo de trabajo, puede acceder a los valores de entrada en el contexto inputs. Para obtener más información, vea «Acceso a información contextual sobre ejecuciones de flujo de trabajo».

Note

  • El flujo de trabajo también recibirá las entradas en el contexto github.event.inputs. La información de los contextos inputs y github.event.inputs son idénticos, salvo que el contexto inputs conserva los valores booleanos como tales en lugar de convertirlos en cadenas. El tipo choice se resuelve en una cadena y es una única opción seleccionable.
  • El número máximo de propiedades de nivel superior para inputs es 10.
  • La carga máxima de inputs es de 65 535 caracteres.

En este ejemplo se definen las entradas denominadas logLevel, tags y environment. Pasarás los valores para estas entradas al flujo de trabajo cuando lo ejecutes. Después, este flujo de trabajo imprime los valores en el registro, mediante las propiedades de contexto inputs.logLevel, inputs.tags y inputs.environment.

on:
  workflow_dispatch:
    inputs:
      logLevel:
        description: 'Log level'
        required: true
        default: 'warning'
        type: choice
        options:
        - info
        - warning
        - debug
      tags:
        description: 'Test scenario tags'
        required: false
        type: boolean
      environment:
        description: 'Environment to run tests against'
        type: environment
        required: true

jobs:
  log-the-inputs:
    runs-on: ubuntu-latest
    steps:
      - run: |
          echo "Log level: $LEVEL"
          echo "Tags: $TAGS"
          echo "Environment: $ENVIRONMENT"
        env:
          LEVEL: ${{ inputs.logLevel }}
          TAGS: ${{ inputs.tags }}
          ENVIRONMENT: ${{ inputs.environment }}

Si ejecutas este flujo de trabajo desde un buscador, debes ingresar los valores para las entradas requeridas manualmente antes de que dicho flujo se ejecute.

Captura de pantalla de una lista de ejecuciones de flujo de trabajo. Un menú desplegable, con la etiqueta "Ejecutar flujo de trabajo" y expandido para mostrar los campos de entrada, aparece en naranja oscuro.

También puedes pasar las entradas cuando ejecutas un flujo de trabajo desde un script o utilizando el GitHub CLI. Por ejemplo:

gh workflow run run-tests.yml -f logLevel=warning -f tags=false -f environment=staging

Para más información, consulta la información de GitHub CLI en "Ejecutar un flujo de trabajo manualmente".

workflow_run

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

Note: Más de un tipo de actividad desencadena este evento. El tipo de actividad requested no se produce cuando se vuelve a ejecutar un flujo de trabajo. Para obtener información sobre cada tipo de actividad, consulta "Eventos y cargas de webhook". De forma predeterminada, todos los tipos de actividad desencadenan flujos de trabajo que se ejecutan en este evento. Puede limitar las ejecuciones de flujo de trabajo a tipos de actividad específicos mediante la palabra clave types. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».

Note

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

Nota: No se puede usar workflow_run para encadenar más de tres niveles de flujos de trabajo. Por ejemplo, si intenta desencadenar cinco flujos de trabajo (denominados B a F) para que se ejecuten secuencialmente después de que se haya ejecutado un flujo de trabajo A inicial (es decir, ABCDEF), los flujos de trabajo E y F no se ejecutarán.

Este evento ocurre cuando se solicita o completa una ejecución de flujo de trabajo. Te permite ejecutar un flujo de trabajo con base en una ejecución o compleción de otro de ellos. El flujo de trabajo iniciado por 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.

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]
    types:
      - completed

Si especifica varios workflows para el evento workflow_run, solo se debe ejecutar uno de los flujos de trabajo. Por ejemplo, un flujo de trabajo con el siguiente activador se ejecutará cada que se complete el flujo de trabajo "Staging" o "Lab".

on:
  workflow_run:
    workflows: [Staging, Lab]
    types:
      - completed

Ejecutar un flujo de trabajo con base en la conclusión de otro flujo de trabjo

Los flujos de trabajo se activan sin importar la conclusión del flujo previo. Si quiere ejecutar un trabajo o un paso en función del resultado del flujo de trabajo desencadenador, puede usar una condicional con la propiedad github.event.workflow_run.conclusion. Por ejemplo, este flujo de trabajo se ejecutará cada vez que se complete un flujo de trabajo denominado "Build", pero el trabajo on-success solo se ejecutará si el flujo de trabajo "Build" se ha realizado correctamente y el trabajo on-failure solo se ejecutará si se ha producido un error en el flujo de trabajo "Build":

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

jobs:
  on-success:
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    steps:
      - run: echo 'The triggering workflow passed'
  on-failure:
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'failure' }}
    steps:
      - run: echo 'The triggering workflow failed'

Ltimitar tu flujo de trabajo para que se ejecute con base a las ramas

Puede usar el filtro branches o branches-ignore para especificar qué ramas debe ejecutar el flujo de trabajo desencadenador para que se desencadene el flujo de trabajo. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub». Por ejemplo, un flujo de trabajo con el desencadenador siguiente solo se ejecutará cuando el flujo de trabajo Build se ejecute en una rama cuyo nombre empiece por canary.

on:
  workflow_run:
    workflows: [Build]
    types: [requested]
    branches: [canary]

Utilizar datos desde el flujo de trabajo llamante

Puede acceder a la carga del evento workflow_run correspondiente al flujo de trabajo que ha desencadenado el flujo de trabajo. Por ejemplo, si el flujo de trabajo desencadenador genera artefactos, un flujo de trabajo desencadenado con el evento workflow_run puede acceder a estos artefactos.

El siguiente flujo de trabajo carga datos como un artefacto. (En este ejemplo simplificado, los datos son el número de la solicitud de cambios).

name: Upload data

on:
  pull_request:

jobs:
  upload:
    runs-on: ubuntu-latest

    steps:
      - name: Save PR number
        env:
          PR_NUMBER: ${{ github.event.number }}
        run: |
          mkdir -p ./pr
          echo $PR_NUMBER > ./pr/pr_number
      - uses: actions/upload-artifact@v4
        with:
          name: pr_number
          path: pr/

Cuando se complete una ejecución del flujo de trabajo anterior, este activará una ejecución del siguiente. El flujo de trabajo siguiente utiliza el contexto github.event.workflow_run y la API REST de GitHub para descargar el artefacto cargado por el flujo de trabajo anterior, descomprime el artefacto descargado y realiza comentarios en la solicitud de incorporación de cambios cuyo número se haya cargado como un artefacto.

name: Use the data

on:
  workflow_run:
    workflows: [Upload data]
    types:
      - completed

jobs:
  download:
    runs-on: ubuntu-latest
    steps:
      - name: 'Download artifact'
        uses: actions/github-script@v6
        with:
          script: |
            let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
               owner: context.repo.owner,
               repo: context.repo.repo,
               run_id: context.payload.workflow_run.id,
            });
            let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
              return artifact.name == "pr_number"
            })[0];
            let download = await github.rest.actions.downloadArtifact({
               owner: context.repo.owner,
               repo: context.repo.repo,
               artifact_id: matchArtifact.id,
               archive_format: 'zip',
            });
            let fs = require('fs');
            fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_number.zip`, Buffer.from(download.data));

      - name: 'Unzip artifact'
        run: unzip pr_number.zip

      - name: 'Comment on PR'
        uses: actions/github-script@v6
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            let fs = require('fs');
            let issue_number = Number(fs.readFileSync('./pr_number'));
            await github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: issue_number,
              body: 'Thank you for the PR!'
            });