Files
msaldain 03dadc93da
YAML / yaml (push) Failing after 1m58s
Python / calidad (push) Successful in 6s
Python / tests (push) Failing after 1m22s
Aplicar ruff format a todo el código
Cambio mecánico, sin efecto en el comportamiento: la suite pasa igual antes y
después. Va en un commit propio para no tapar los cambios con sentido.

Se agregan además dos flujos de verificación que corren en cada carga al
repositorio:

- YAML: yamllint para sintaxis y estilo, más la carga de cada config contra su
  esquema de pydantic. Son cosas distintas — un YAML puede ser sintácticamente
  perfecto y estar roto igual, con 'run_nombre' en vez de 'run_name'. Ese paso
  no instala torch: se verificó que la capa de configuración no lo importa, así
  que corre en segundos en vez de descargar dos gigas y medio de CUDA.
- Python: ruff check, ruff format --check y la suite completa con torch de CPU.

Las rutas ignoradas de .yamllint.yml van ancladas con barra inicial. Sin
anclar, 'data/' y 'runs/' excluían configs/data/ y configs/runs/ — siete
archivos, justo los que más importa revisar — y el linter pasaba en verde sin
haber mirado nada. Es el mismo defecto que ya había aparecido en .gitignore.
2026-07-28 07:25:51 -03:00

46 lines
1.5 KiB
YAML

# Verificación de los YAML del repositorio, en cada carga.
#
# Dos niveles, porque atrapan cosas distintas:
#
# 1. yamllint mira la sintaxis y el estilo: indentación, duplicados, tabs.
# 2. La validación contra el esquema carga cada config con pydantic. Un YAML
# puede ser sintácticamente perfecto y estar roto igual — `n_layers` en vez
# de `n_layer`, un schedule que no entra en max_steps, float16 sin
# GradScaler. Eso solo lo ve el esquema.
#
# El segundo paso no instala torch a propósito: la capa de configuración no lo
# importa, así que el CI corre en segundos en vez de descargar 2,5 GB de CUDA.
name: YAML
on:
push:
pull_request:
jobs:
yaml:
runs-on: ubuntu-latest
steps:
- name: Descargar el repositorio
uses: actions/checkout@v4
- name: Preparar Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Instalar dependencias
# Solo lo que hace falta: yamllint para la sintaxis, pydantic y
# omegaconf para el esquema. Nada de torch.
run: |
python -m pip install --upgrade pip
python -m pip install "yamllint>=1.35" "pydantic>=2.7" "omegaconf>=2.3"
- name: Sintaxis y estilo de los YAML
# --strict convierte las advertencias en errores: si una regla no vale
# la pena, se desactiva en .yamllint.yml, no se deja avisando para
# siempre.
run: yamllint --strict .
- name: Las configs cargan y pasan su esquema
run: python scripts/validar_configs.py