Inicio › Herramientas para desarrolladores › Generador de workflows de GitHub Actions

Generador de workflows de GitHub Actions

Elige tu stack y obtén un archivo .github/workflows listo para hacer commit: disparadores de push, pull request, etiquetas y programación, una matriz de versiones y sistemas operativos, caché de dependencias, pasos de lint, test y build, y un despliegue opcional a GitHub Pages o GitHub Container Registry. Incluye permisos mínimos y un dependabot.yml a juego.

Última actualización:

Workflow
Disparadores
Matriz de build
Sistemas operativos
Pasos
Despliegue y extras

Archivos generados

Guardar como

    Publicidad
    Publicidad

    Cómo usar Generador de workflows de GitHub Actions

    1. Elige el tipo de proyecto: Node.js, Python, Go, Java, Rust, .NET, imagen Docker o sitio estático.
    2. Configura los disparadores: ramas para push y pull requests, etiquetas opcionales como v*, una programación cron y ejecuciones manuales.
    3. Configura la matriz de versiones del lenguaje y sistemas operativos, y edita los comandos de instalación, lint, test y build.
    4. Elige un destino de despliegue (GitHub Pages o una imagen Docker en GHCR) y extras como caché y artefactos.
    5. Copia o descarga el workflow, guárdalo como .github/workflows/ci.yml en tu repositorio y haz push. La ejecución aparece en la pestaña Actions.

    Estructura del archivo del workflow

    ClaveEjemploSignificado
    onpush, pull_request, schedule, workflow_dispatchEventos que inician el workflow
    permissionscontents: readAlcances del GITHUB_TOKEN automático
    concurrencygroup: ${{ github.workflow }}-${{ github.ref }}Solo una ejecución por grupo; las ejecuciones antiguas del PR se cancelan
    jobs.<id>.runs-onubuntu-latestImagen del runner para el job
    strategy.matrixnode: ['22', '24']Ejecuta el job una vez por combinación
    steps[].usesactions/checkout@v5Ejecuta una acción publicada en una versión
    steps[].runnpm testEjecuta un comando de shell
    needsneeds: testEspera a que otro job termine con éxito primero
    ifgithub.ref == 'refs/heads/main'Ejecuta un job o paso solo cuando la condición es verdadera

    Acciones que usa el generador

    Versiones mayores vigentes en 2025-2026. Fijar una etiqueta mayor recibe las correcciones automáticamente; para la máxima seguridad de la cadena de suministro puedes fijar en su lugar un SHA de commit completo y dejar que Dependabot lo actualice.

    AcciónSe usa para
    actions/checkout@v5Clonar el repositorio en el runner
    actions/setup-node@v5, setup-python@v6, setup-go@v6, setup-java@v5, setup-dotnet@v4Instalar el entorno del lenguaje, con caché integrada
    pnpm/action-setup@v4Instalar pnpm antes de setup-node
    dtolnay/rust-toolchain, Swatinem/rust-cache@v2Toolchain de Rust y caché de cargo
    actions/upload-artifact@v4Conservar la salida del build para descargarla
    actions/configure-pages@v5, upload-pages-artifact@v4, deploy-pages@v4Publicar en GitHub Pages
    docker/setup-buildx-action@v3, login-action@v3, metadata-action@v5, build-push-action@v6Compilar, etiquetar y subir imágenes de contenedor

    Consejos para una CI rápida y fiable

    • Usa instalaciones limpias (npm ci, pnpm install --frozen-lockfile) para que la CI falle cuando el archivo de bloqueo esté desactualizado en lugar de resolver nuevas versiones sin avisar.
    • Mantén la matriz pequeña para los pull requests; probar cada sistema operativo y versión multiplica los minutos. Prueba la versión compatible más antigua y la más reciente.
    • Usa paths-ignore para cambios solo de documentación, pero recuerda que una comprobación de estado obligatoria que nunca se ejecuta bloquea el merge.
    • Guarda las credenciales como secretos (Settings → Secrets and variables → Actions) y haz referencia a ellas como ${{ secrets.NAME }}; nunca las muestres en los logs.
    • Valida en local con un validador de YAML, o ejecuta los workflows en tu equipo con una herramienta como act antes de hacer push.

    Preguntas frecuentes

    ¿Dónde pongo el archivo del workflow?

    Guárdalo en tu repositorio dentro de .github/workflows/ con extensión .yml o .yaml, por ejemplo .github/workflows/ci.yml, y súbelo a GitHub. Los workflows se ejecutan desde la rama predeterminada para las programaciones y desde la rama enviada para los eventos push y pull_request. El archivo dependabot.yml va directamente en .github/.

    ¿Qué hace la matriz?

    strategy.matrix ejecuta el mismo job una vez por cada combinación de valores; por ejemplo, Node.js 22 y 24 en Ubuntu y Windows da cuatro jobs en paralelo. Pon fail-fast en false para que las demás combinaciones terminen cuando una falla, así ves todas las versiones rotas a la vez.

    ¿Cómo funciona la caché de dependencias?

    Las acciones oficiales de setup (setup-node, setup-python, setup-java, setup-go) pueden guardar en caché la carpeta de descargas del gestor de paquetes con una clave basada en el hash de tu archivo de bloqueo, así las ejecuciones posteriores la reutilizan en lugar de descargarlo todo. Requiere un archivo de bloqueo incluido en el repositorio, como package-lock.json o requirements.txt. Rust usa Swatinem/rust-cache y .NET usa actions/cache sobre la carpeta de NuGet.

    ¿Por qué poner permissions: contents: read?

    El GITHUB_TOKEN automático solo obtiene los permisos que concedes. Contents de solo lectura basta para descargar el código y limita el daño si un paso o una dependencia se ve comprometido. Los jobs que necesitan más lo piden explícitamente: packages: write para subir imágenes, pages: write e id-token: write para desplegar en GitHub Pages.

    ¿Cómo despliego un sitio en GitHub Pages con Actions?

    Elige Desplegar en GitHub Pages, indica la carpeta de salida del build y, en los ajustes del repositorio, pon Pages → Source en GitHub Actions. El job de build sube la carpeta con actions/upload-pages-artifact y un job de despliegue la publica con actions/deploy-pages en el entorno github-pages.

    ¿Qué sintaxis cron usa la programación?

    Cron POSIX estándar de 5 campos en UTC: minuto, hora, día del mes, mes, día de la semana. Por ejemplo, 0 6 * * 1 se ejecuta cada lunes a las 06:00 UTC. El intervalo más corto es cada 5 minutos, y las ejecuciones programadas pueden retrasarse en periodos de mucha carga.

    ¿Qué versiones de las acciones se usan?

    Las versiones mayores vigentes en 2025-2026, por ejemplo actions/checkout@v5, actions/setup-node@v5, actions/setup-python@v6 y actions/setup-go@v6. Las versiones mayores cambian con el tiempo, así que el dependabot.yml generado revisa el ecosistema github-actions cada semana y abre pull requests cuando salen versiones nuevas.

    ¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

    Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

    Herramientas relacionadas

    Ver todas las de Generadores de código →