Automatiza tu workflow con GitHub Actions
Aprende a automatizar tus tareas repetitivas en GitHub Actions con ejemplos prácticos para desarrolladores.
Si eres desarrollador y aún no has probado GitHub Actions, te estás perdiendo una de las herramientas más útiles para ahorrar tiempo y evitar errores manuales. Con esta funcionalidad integrada en GitHub, puedes automatizar tareas repetitivas como tests, despliegues o notificaciones directamente desde tu repositorio. Lo mejor: no necesitas infraestructura externa.
¿Qué es un workflow y cómo se estructura?
Un workflow es un proceso automatizado que se define en un archivo YAML dentro de la carpeta .github/workflows/. Cada workflow se activa por eventos concretos: un push, un pull request, o incluso un schedule programado.
La estructura básica incluye:
- name: nombre descriptivo del workflow.
- on: evento que lo dispara.
- jobs: tareas que se ejecutan, cada una con sus
steps.
Ejemplo mínimo:
name: CI básico
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "Workflow ejecutado correctamente"
Automatizar tests con cada push
Uno de los usos más comunes es lanzar tests automáticos cada vez que subes código. Así evitas que algo roto llegue a producción. Para un proyecto Node.js, el workflow sería:
name: Tests Node.js
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18'
- run: npm ci
- run: npm test
Si algún test falla, GitHub lo marca en rojo y puedes configurar notificaciones por correo o Slack.
Desplegar en producción con un solo merge
GitHub Actions también te permite desplegar automáticamente cuando haces merge a la rama principal. Aquí tienes un ejemplo para subir archivos por FTP a un servidor clásico:
name: Deploy a producción
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Subir archivos por FTP
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USER }}
password: ${{ secrets.FTP_PASSWORD }}
local-dir: ./dist/
Los secretos los guardas en Settings > Secrets and variables > Actions de tu repositorio. Así nunca expones credenciales en el código.
Programar tareas periódicas
¿Necesitas ejecutar un script cada día a las 8 de la mañana? Usa la sintaxis cron:
name: Limpieza diaria
on:
schedule:
- cron: '0 8 * * *'
jobs:
cleanup:
runs-on: ubuntu-latest
steps:
- run: curl -X POST https://tuservidor.com/api/cleanup
Esto es perfecto para borrar logs antiguos, renovar certificados o enviar informes automáticos.
Conclusión
GitHub Actions te quita trabajo repetitivo de encima y hace que tu flujo sea más fiable. Empieza con algo sencillo, como lanzar tests al hacer push, y ve añadiendo más pasos según necesites. En mi día a día como técnico en Alaquas, esta herramienta me ha salvado de más de un despliegue nocturno con errores. Pruébalo y verás cómo tu productividad sube sin apenas esfuerzo.