#393 · Herramienta para desarrolladores

GitHub Actions Matrix Generator

Construye una matriz de GitHub Actions a partir de dimensiones escritas como clave: valor1, valor2. La herramienta calcula cuántas combinaciones producirá la estrategia, genera el bloque YAML de matrix y avisa cuando la expansión puede crear demasiados jobs. Sirve para preparar pruebas cruzadas de sistemas operativos, versiones de runtime o configuraciones sin escribir manualmente listas repetitivas.

Datos de entrada

Dimensiones de la matriz
Espacio publicitario

Cómo usar esta herramienta para desarrolladores

  1. Escribe una dimensión por línea con el formato clave: valores separados por comas.
  2. Usa claves como os, node, python o cualquier identificador válido para tu workflow.
  3. Elige si quieres envolver el bloque dentro de strategy y el valor de fail-fast.
  4. Genera el YAML y comprueba el número total de combinaciones antes de pegarlo.

Qué hace esta herramienta para desarrolladores

El bloque resultante define las listas que GitHub Actions expandirá en combinaciones de jobs. El contador de combinaciones multiplica el número de valores de cada dimensión y permite detectar una matriz demasiado grande antes de ejecutar el workflow.

Cada línea se convierte en una dimensión de matrix. Los valores se escapan cuando contienen caracteres que podrían interpretarse de forma especial en YAML; los literales que parecen booleanos o números se citan para evitar cambios de tipo inesperados.

La herramienta genera la matriz básica. Las secciones include y exclude dependen de combinaciones concretas y deben añadirse de acuerdo con la lógica de tu workflow.

Ejemplo

os: ubuntu-latest, windows-latest node: 20, 22

Genera cuatro combinaciones potenciales: dos sistemas operativos por dos versiones de Node.

Casos de uso

  • Probar una librería en varias versiones de Node.
  • Ejecutar tests en Linux y Windows.
  • Crear combinaciones de runtime y modo de compilación.

Consejos para obtener resultados fiables

  • Evita dimensiones con muchos valores si cada combinación ejecuta un job costoso.
  • Cita versiones como 20 o 3.12 cuando quieras conservarlas como cadenas.
  • Revisa los nombres de runners admitidos por GitHub Actions.
  • Usa include/exclude manualmente cuando algunas combinaciones no tengan sentido.
  • Comprueba los límites actuales de GitHub Actions si la matriz es grande.

Detalles del procesamiento

El generador no ejecuta el workflow ni consulta GitHub. La salida es YAML de texto y el JSON exportable conserva las dimensiones originales y el recuento calculado.

No valida acciones individuales, permisos del workflow ni compatibilidad de cada runtime; solo construye la estructura matrix a partir de los valores proporcionados.

Preguntas frecuentes

¿Cómo genero una matrix de GitHub Actions para varias versiones de Node y sistemas operativos?

Crea una línea os con los runners y otra línea node con las versiones separadas por comas; el generador producirá ambas dimensiones y calculará todas las combinaciones.

¿Por qué el generador pone comillas a valores numéricos como 20?

Para evitar que YAML cambie el tipo de un valor que en una matriz suele usarse como etiqueta o versión textual.

¿Cómo sé cuántos jobs puede crear mi matrix?

La métrica Combinaciones multiplica la cantidad de valores de todas las dimensiones y muestra el máximo potencial antes de aplicar include o exclude.

¿Puedo generar include y exclude automáticamente?

Este generador se centra en la matriz base. include y exclude requieren reglas específicas de tu workflow y deben revisarse caso por caso.

¿La salida se puede pegar directamente bajo jobs.<job>?

Sí, si generas el bloque strategy completo. Ajusta la indentación si lo pegas dentro de una estructura YAML que ya tenga niveles adicionales.

Módulos de la herramienta

MóduloQué comprueba o genera
Parser de dimensionesLee claves y listas separadas por comas.
Calculadora cartesianaEstima el número de jobs potenciales.
Emisor YAMLGenera matrix o strategy + matrix con valores protegidos.