Desencadenantes en GitHub Actions: Configuración y Ejemplos Prácticos
Introducción
GitHub Actions permite automatizar flujos de trabajo en respuesta a una variedad de eventos. Estos eventos, también conocidos como desencadenantes o triggers, determinan cuándo se debe ejecutar un flujo de trabajo. En este blog, exploraremos los diferentes tipos de eventos que pueden desencadenar un workflow y proporcionaremos ejemplos simples para cada uno.
Tipos de Triggers en GitHub Actions
- push (empujar)
- pull_request (solicitud de extracción)
- schedule (programación)
- workflow_dispatch (despacho de flujo de trabajo)
- issue (incidencia)
- release (lanzamiento)
Ejemplos de Configuración para Cada Trigger
1. Evento push
: Este evento se desencadena cuando se realiza un push a una rama del repositorio. Es útil para ejecutar pruebas o despliegues automáticos.
Ejemplo Evento push
:
name: CI on Push
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Print message
run: echo "Se ha realizado un push al repositorio"
2. Evento pull_request
: Este evento se activa cuando se abre, actualiza o cierra una solicitud de extracción. Ideal para ejecutar pruebas y revisiones antes de fusionar código.
Ejemplo pull_request
:
name: CI on Pull Request
on: [pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Print message
run: echo "Se ha creado o actualizado una solicitud de extracción"
3. Evento schedule
: Este evento utiliza una expresión cron para programar la ejecución de un workflow en intervalos regulares. Perfecto para tareas de mantenimiento o informes programados.
Ejemplo schedule
:
name: Scheduled Workflow
on:
schedule:
- cron: '0 0 * * 1' # Se ejecuta todos los lunes a medianoche
jobs:
maintenance:
runs-on: ubuntu-latest
steps:
- name: Print message
run: echo "Ejecutando tarea programada"
4. Evento workflow_dispatch
: Permite iniciar manualmente un flujo de trabajo desde la interfaz de GitHub. Útil para flujos de trabajo que no necesitan ejecutarse automáticamente.
Ejemplo workflow_dispatch
:
name: Manual Dispatch
on:
workflow_dispatch:
jobs:
manual:
runs-on: ubuntu-latest
steps:
- name: Print message
run: echo "Este flujo de trabajo se ha iniciado manualmente"
5. Evento issue
: Se desencadena cuando se abre, edita, o cierra una incidencia en el repositorio. Ideal para gestionar el ciclo de vida de incidencias y tareas.
Ejemplo issue
:
name: Issue Handler
on:
issues:
types: [opened, edited, closed]
jobs:
handle_issue:
runs-on: ubuntu-latest
steps:
- name: Print message
run: echo "Se ha abierto, editado o cerrado una incidencia"
6. Evento release
: Este evento se activa cuando se crea, publica, edita o borra un lanzamiento en el repositorio. Útil para tareas relacionadas con el despliegue y la distribución.
Ejemplo release
:
name: Release Workflow
on:
release:
types: [published]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Print message
run: echo "Se ha publicado un nuevo lanzamiento"
Conclusión
Los eventos desencadenantes en GitHub Actions son una parte esencial para automatizar y optimizar tus flujos de trabajo. Al entender y configurar correctamente estos triggers, puedes asegurar que tus tareas se ejecuten de manera eficiente y en el momento adecuado. Estos ejemplos básicos te ayudarán a comenzar y a explorar más las posibilidades de automatización con GitHub Actions.
Links de referencia: Events that trigger workflows