Saltar al contenido
🛠️ToolsShed

GitHub Actions Generator

Genera YAML de flujo de trabajo GitHub Actions para pipelines CI/CD con triggers, trabajos y pasos personalizables.

name: CI
on:
  push:
    branches: [main, master]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test

      - name: Build
        run: npm run build

Acerca de esta herramienta

GitHub Actions Generator es una herramienta basada en navegador que ayuda a los desarrolladores a crear archivos de flujo de trabajo CI/CD sin escribir manualmente la sintaxis YAML. Al seleccionar triggers, trabajos y pasos de compilación a través de una interfaz intuitiva, la herramienta genera automáticamente YAML de flujo de trabajo listo para producción que puede copiar directamente en el directorio .github/workflows de su repositorio.

Para usar esta herramienta, comience definiendo el trigger del flujo de trabajo (eventos push, solicitudes pull, tiempos programados o activación manual), luego configure los trabajos y los pasos que cada trabajo debe ejecutar. Puede añadir múltiples trabajos que se ejecuten secuencial o paralelamente, especificar variables de entorno e incluir acciones comunes como instalar dependencias, ejecutar pruebas, compilar código y desplegar a producción. Este enfoque es ideal para equipos que configuran la integración continua por primera vez, desarrolladores que desean evitar errores de sintaxis YAML, o cualquiera que prefiera un constructor visual de flujos de trabajo en lugar de codificar manualmente archivos de configuración.

El YAML generado es completamente compatible con GitHub Actions y no requiere formato adicional: pégalo directamente en tu archivo de flujo de trabajo y personaliza los secretos o credenciales según sea necesario. Aunque esta herramienta simplifica la creación de flujos de trabajo, los despliegues complejos en múltiples entornos o estrategias de almacenamiento en caché avanzadas aún pueden beneficiarse del ajuste fino manual del resultado generado.

Preguntas Frecuentes

Implementación de Código

import yaml

def generate_github_actions_workflow(
    name: str,
    trigger: str,
    jobs: list[dict]
) -> str:
    workflow = {
        "name": name,
        "on": {},
        "jobs": {}
    }

    if trigger == "push":
        workflow["on"] = {"push": {"branches": ["main"]}}
    elif trigger == "pull_request":
        workflow["on"] = {"pull_request": {"branches": ["main"]}}
    elif trigger == "schedule":
        workflow["on"] = {"schedule": [{"cron": "0 0 * * *"}]}
    else:
        workflow["on"] = {trigger: {}}

    for job in jobs:
        job_id = job["id"]
        workflow["jobs"][job_id] = {
            "runs-on": job.get("runs_on", "ubuntu-latest"),
            "steps": job.get("steps", [])
        }

    return yaml.dump(workflow, default_flow_style=False, sort_keys=False)

# Example: Node.js CI workflow
jobs = [
    {
        "id": "build",
        "runs_on": "ubuntu-latest",
        "steps": [
            {"uses": "actions/checkout@v4"},
            {"name": "Setup Node", "uses": "actions/setup-node@v4",
             "with": {"node-version": "20"}},
            {"name": "Install dependencies", "run": "npm ci"},
            {"name": "Run tests", "run": "npm test"},
        ]
    }
]

yaml_output = generate_github_actions_workflow("CI", "push", jobs)
print(yaml_output)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.