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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
branch_protection_rule | - created - edited - deleted | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
check_run | - created - rerequested - completed - requested_action | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
check_suite | - completed | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
create | No aplicable | Última confirmación en la rama o etiqueta creada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
delete | No aplicable | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
deployment | No aplicable | Confirmación de implementación | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
deployment_status | No aplicable | Confirmación de implementación | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
discussion | - created - edited - deleted - transferred - pinned - unpinned - labeled - unlabeled - locked - unlocked - category_changed - answered - unanswered | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
discussion_comment | - created - edited - deleted | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
fork | No aplicable | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
gollum | No aplicable | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
issue_comment | - created - edited - deleted | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
issues | - opened - edited - deleted - transferred - pinned - unpinned - closed - reopened - assigned - unassigned - labeled - unlabeled - locked - unlocked - milestoned - demilestoned | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
label | - created - edited - deleted | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
merge_group | checks_requested | SHA del grupo de fusión mediante combinación | Referencia 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 clavetypes
. 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 eventomerge_group
es independiente de los eventospull_request
ypush
.
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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
milestone | - created - closed - opened - edited - deleted | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
page_build | No aplicable | Última confirmación en la rama predeterminada | No 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
public | No aplicable | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_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_REF | Rama 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
esopened
,synchronize
oreopened
. Para desencadenar flujos de trabajo mediante otros tipos de actividad, use la palabra clavetypes
. 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 desencadenadorpull_request_target
, debe tener en cuenta los riesgos de seguridad. Para obtener más información, veapull_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á elref
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_review
y 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request_review | - submitted - edited - dismissed | Última confirmación de combinación en la rama GITHUB_REF | Rama 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_review
y 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request_review_comment | - created - edited - deleted | Última confirmación de combinación en la rama GITHUB_REF | Rama 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_review
y 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_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ón | Rama 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
, synchronize
o 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
push | No aplicable | Consejo 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
registry_package | - published - updated | Confirmación del paquete publicado | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
release | - published - unpublished - created - edited - deleted - prereleased - released | Última confirmación en el lanzamiento etiquetado | Referencia 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
repository_dispatch | Personalizado | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
No aplicable | No aplicable | Última confirmación en la rama predeterminada | Rama 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 valorcron
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:
Operador | Descripción | Ejemplo |
---|---|---|
* | Cualquier valor | 15 * * * * se ejecuta a cada minuto 15 de cada hora de cada día. |
, | Separador de la lista de valores | 2,10 4,5 * * * se ejecuta en el minuto 2 y 10 de la 4ª y 5ª hora de cada día. |
- | Rango de valores | 30 4-6 * * * se ejecuta en el minuto 30 de la 4ª, 5ª y 6ª hora. |
/ | Valores del paso | 20/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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
status | No aplicable | Última confirmación en la rama predeterminada | No 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
watch | - started | Última confirmación en la rama predeterminada | Rama 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
El mismo que el flujo de trabajo que llama | No aplicable | El mismo que el flujo de trabajo que llama | El 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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
workflow_dispatch | No aplicable | Última confirmación en la rama o etiqueta GITHUB_REF | Rama 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 contextosinputs
ygithub.event.inputs
son idénticos, salvo que el contextoinputs
conserva los valores booleanos como tales en lugar de convertirlos en cadenas. El tipochoice
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.
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 Webhook | Tipos de actividad | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
workflow_run | - completed - requested - in_progress | Última confirmación en la rama predeterminada | Rama 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, A
→ B
→ C
→ D
→ E
→ F
), 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!'
});