Aprende a crear y ejecutar workflows manuales en GitHub Actions utilizando workflow_dispatch, definiendo parámetros de entrada y personalizando la ejecución de tus automatizaciones desde la interfaz de GitHub.
midudev
Más clases y directos en YouTube
🎮 Flujo de trabajo manual
Hasta ahora los workflows de GitHub Actions suelen ejecutarse automáticamente cuando ocurre un evento determinado, como un push o la creación de una pull request.
Sin embargo, existen situaciones donde resulta útil lanzar una automatización únicamente cuando un usuario lo decide.
Para ello GitHub proporciona el evento workflow_dispatch.
🚀 Qué es workflow_dispatch
workflow_dispatch permite ejecutar un workflow manualmente desde la interfaz de GitHub.
En lugar de esperar a que ocurra un evento automático, cualquier usuario con permisos adecuados puede iniciar la ejecución cuando lo necesite.
Esto resulta especialmente útil para:
- Despliegues bajo demanda
- Tareas de mantenimiento
- Procesos de validación manual
- Ejecuciones de pruebas específicas
- Automatizaciones administrativas
⚙️ Configuración básica
Para habilitar la ejecución manual únicamente es necesario añadir el evento:
on: workflow_dispatch:
Una vez definido, GitHub mostrará un botón Run workflow dentro de la pestaña Actions del repositorio.
Desde allí será posible lanzar el workflow cuando sea necesario.
📝 Definiendo parámetros de entrada
Una de las ventajas más interesantes de workflow_dispatch es que permite solicitar información al usuario antes de iniciar la ejecución.
Estos datos se definen mediante inputs.
Por ejemplo:
on: workflow_dispatch: inputs: logging_level: description: Nivel de logging required: true environment: description: Entorno de despliegue required: true dry_run: description: Ejecutar en modo simulación required: true reason: description: Motivo de la ejecución required: true
Cuando se ejecute el workflow, GitHub mostrará un formulario para completar estos valores.
🔍 Accediendo a los inputs
Los parámetros proporcionados por el usuario pueden utilizarse dentro del workflow mediante el contexto inputs.
Por ejemplo:
${{ inputs.logging_level }}${{ inputs.environment }}${{ inputs.dry_run }}${{ inputs.reason }}
Esto permite adaptar el comportamiento del workflow según los valores introducidos en cada ejecución.
🧪 Mostrando los valores recibidos
Una forma sencilla de comprobar que los parámetros están llegando correctamente es mostrarlos durante la ejecución:
steps: - name: Mostrar todos los inputs env: LOG_LEVEL: ${{ inputs.logging_level }} ENVIRONMENT: ${{ inputs.environment }} DRY_RUN: ${{ inputs.dry_run }} REASON: ${{ inputs.reason }} run: | echo "LOG_LEVEL: $LOG_LEVEL" echo "ENVIRONMENT: $ENVIRONMENT" echo "DRY_RUN: $DRY_RUN" echo "REASON: $REASON"
De esta manera es posible verificar rápidamente qué información recibió el workflow.
🎯 Casos de uso habituales
Los workflows manuales suelen utilizarse para tareas como:
🚢 Despliegues controlados
Permiten seleccionar el entorno de destino antes de iniciar una publicación.
🧹 Mantenimiento
Facilitan la ejecución de tareas administrativas cuando sea necesario.
🧪 Pruebas específicas
Posibilitan lanzar pruebas concretas sin necesidad de realizar commits adicionales.
🔄 Operaciones puntuales
Resultan ideales para acciones que no deben ejecutarse automáticamente.
📌 Ideas clave de esta clase
Quédate con estos conceptos:
workflow_dispatchpermite ejecutar workflows manualmente.- Los workflows pueden iniciarse desde la interfaz de GitHub.
- Es posible solicitar información al usuario mediante
inputs. - Los parámetros recibidos se acceden usando
inputs. - Los valores pueden utilizarse para personalizar la ejecución.
- Los workflows manuales son ideales para despliegues y tareas bajo demanda.
🚀 Lo siguiente
Ahora que ya sabes cómo lanzar workflows manualmente y recibir parámetros de entrada, el siguiente paso es aprovechar esos datos para crear automatizaciones más flexibles y adaptables a distintos escenarios.
Los inputs permiten convertir un workflow estático en una herramienta reutilizable capaz de comportarse de forma diferente según las necesidades de cada ejecución.
💡 Tip: Utiliza
workflow_dispatchsiempre que una automatización requiera supervisión humana o decisiones previas antes de ejecutarse. Esto aporta flexibilidad sin perder las ventajas de GitHub Actions.
