Sobre MíQué hagoProyectosLabContacto

Serving y coste

model-budget-action

Falla la CI cuando un peso de modelo o un bundle crece más de la cuenta.

model-budget-action CI statusMIT license

Instalación

Se usa como paso de un workflow de GitHub Actions, no se instala con pip:

- uses: actions/checkout@v4
- uses: jmweb-org/model-budget-action@v1
  with:
    config: .github/model-budgets.json

Qué hace

En julio de 2026 un deploy de este mismo sitio se rompió en silencio durante doce días: una librería de tokens de 3,6 MB se coló en el bundle del servidor y empujó al Worker de Cloudflare por encima de su límite de 3 MiB gzip en el plan gratuito. Nada falló de forma ruidosa, el build seguía en verde y producción seguía sirviendo la última versión que sí cabía. model-budget-action es la comprobación que faltaba, generalizada: declaras un patrón y un tamaño máximo, y la CI falla en el momento en que algo lo supera, no dos semanas después.

En acción

- uses: jmweb-org/model-budget-action@v1
  with:
    config: fixtures/model-budgets-fail.json
# Model budget report

| File | Size | Budget | Margin | Status |
| --- | --- | --- | --- | --- |
| fixtures/oversized/big.bin | 3.00 KB | 1.00 KB | -2.00 KB | FAIL |

::error file=fixtures/oversized/big.bin::fixtures/oversized/big.bin is 2.00 KB over its 1.00 KB budget (3.00 KB).
model-budget-action: one or more artifacts are over their size budget.

Características

  • Declara un patrón glob y un tamaño máximo por fichero, en JSON o YAML.
  • gzip: true mide el tamaño comprimido, el que de verdad cuenta contra el límite de una plataforma.
  • warn-at avisa antes de romper el build cuando un fichero se acerca al límite.
  • Escribe una tabla markdown en el job summary con cada fichero, su margen y su estado.
Ver el código en GitHub

Otras herramientas

hola@jmwebsoluciones.com